首页 > 其他分享 >简单选择排序

简单选择排序

时间:2023-07-25 17:56:58浏览次数:29  
标签:int 简单 c++ 选择 SqType printf 排序 define

本文章的代码使用jetbrains公司旗下的的Clion编写,操作系统位macOS Ventura(13.2.1). 代码没有在dev-c++测试过(dev-c++可能会有相关的空格问题)

//
// Created by 魏志杰 on 2023/7/25.
//

#include "stdio.h"
#define Max 100
#define before  printf("排序前")
#define after   printf("排序后")
#define newline printf("\n")
#define print   printf("%6d", R[i].key)
#define printA  printf("%6d",A[i])
#define Array int A[]={5,7,2,5,9,6,-42,1,67,2,3};

typedef struct {
    int key;
    int data;
}SqType;

//选择排序的基本思路是:每步从待排序的元素中获取关键字最小的元素,按顺序排放在已经排列好的元素的后面

void select(SqType R[] ,int n){
    int i,j,k;
    SqType tmp;
    for(i=0;i<n-1;i++){
        k=i;
        for (j= i+1; j < n; j++)
            if (R[j].key<R[k].key)
                k=j;
        if (k !=i ){
            tmp=R[i];
            R[i]=R[k];
            R[k]=tmp;
        }
    }
}

void select_1(int A[],int n){
for (int i = 0; i < n-1; i++) {
    int minIndex=i;                 //记录最小索引
    for (int j = i+1; j < n; j++) {
        if (A[j]<A[minIndex]){
            minIndex=j;             //更新索引
        }
    }
    //交换当前最小位置与当前末排序部分的第一个元素交换位置
    int temp=A[i];
    A[i]=A[minIndex];
    A[minIndex]=temp;

}
}


int  main(){
    SqType R[Max];
    Array;
    for (int i = 0; i < 10; i++)
        R[i].key = A[i];
    before;
    for (int i = 0; i < 10; i++)
        print;
    newline;
    select(R,10);
    after;
    for (int i = 0; i < 10; i++)
        print;
    newline;
    select_1(A,10);
    after;
    for (int i = 0; i < 10; i++)
        printA;

}

代码结果如下

标签:int,简单,c++,选择,SqType,printf,排序,define
From: https://www.cnblogs.com/xiaozhounandu/p/17580481.html

相关文章

  • ZeroTier简单使用
    在CentOS系统下,你可以使用以下命令行操作来管理ZeroTier网络和设备。首先,确保已经正确安装ZeroTier软件,你可以按照以下步骤进行安装:安装ZeroTier:ZeroTier可以使用YUM包管理器进行安装。打开终端并执行以下命令:sudoyuminstallzerotier-one启动ZeroTier:安装......
  • [c/c++][考研复习笔记]内部排序篇学习笔记
    考研排序复习笔记插入排序#include<stdio.h>#include<stdlib.h>#defineMaxSize9//折半插入排序voidZBInsertSort(intA[],intn){ inti,j,high,low,mid; for(i=2;i<=n;i++){ A[0]=A[i]; low=1;high=i-1; while(low<=high){ mid=(low+high)/2......
  • Element-ui源码解析(二):最简单的组件Button
    好家伙,为了有足够的能力去开发组件,先研究一下别人的组件开始抄袭模仿我们的行业标杆element-ui 找到Button组件的源码 只有三个文件,看上去非常易读,开搞  其中最重要的部分,自然是button.vue<template><buttonclass="el-button"@click="handl......
  • 工业物联网网关让PLC数据手机端监控和报警更加简单
    在传统的工厂管理中,我们想要看到现场设备的实时数据,必须在控制室内通过工控机、电脑、触摸屏等这些上位机设备才能看到,同理PLC维护也需要工程师在现场进行编程调试工作,非常不方便。随着工业物联网的发展,作为设备厂家需要提供远程监控和调试方案给到工业用户,需要对设备运行数据远程......
  • [爬虫]1.2.2 CSS选择器
    CSS(CascadingStyleSheets)是一种样式表语言,用于描述HTML元素的样式。CSS选择器是CSS规则的一部分,它决定了CSS规则应用于哪些元素。在网络爬虫的开发中,我们经常使用CSS选择器来定位和选取HTML元素。以下是一些常见的CSS选择器:1.元素选择器元素选择器选择所有给定的HTML元......
  • 代理IP的来源和选择标准
    代理IP的来源和选择标准在今天的互联网时代,隐私保护和网络安全成为了我们越来越关注的问题。使用代理IP是一种常见的手段,可以隐藏真实的IP地址,保护个人隐私。然而,选择合适的代理IP供应商和标准变得至关重要。本文将为大家分享代理IP的来源和选择标准,帮助你保护网络隐私。首先,我们需......
  • 快速排序
    本文章的代码使用jetbrains公司旗下的的Clion编写,操作系统位macOSVentura(13.2.1).代码没有在dev-c++测试过(dev-c++可能会有相关的空格问题)【对书上的内容进行了一点更新和优化,主要是对未知的特殊情况处理】////Createdby魏志杰on2023/7/25.//#include"stdio.h"#de......
  • 希尔排序
    本文章的代码使用jetbrains公司旗下的的Clion编写,操作系统位macOSVentura(13.2.1).代码没有在dev-c++测试过(dev-c++可能会有相关的空格问题)////Createdby魏志杰on2023/7/25.//#include"stdio.h"#defineMax100#definebeforeprintf("排序前")#defineafterp......
  • Unity 生成多边形最简单的方法
    按照正常的思维,先将多边形进行三角剖分,生成网格,再添加碰撞器,去实现业务逻辑多边形三角化是件麻烦事,还需要考虑多边形的凹凸性,有没有洞等其实可以反其道而行,先添加碰撞器,通过碰撞器生成mesh,代码比较简单,直接上代码usingSystem.Collections;usingSystem.Collections.Generic;......
  • 特征选择 - Fisher Score
    特征选择的目的在理想情况下,特征选择想要达到以下效果:简化模型以提高可解释性:通过减少特征的数量,模型变得更简单,更容易理解。这对于那些需要理解模型如何做出预测的领域(如医疗或信贷评分)非常重要。改进模型性能:通过消除无关或冗余的特征,模型的预测性能可能会得到提高。这是......