首页 > 代码库 > 选择排序

选择排序

选择排序就是第一个数和后面的比较;在是第二个 依次进行;每次把最大或者最小的排出来。

 

#include<stdio.h>
int  fun(int *a,int n){     //调用的函数
    for (int i=0; i<n-1; i++) {//这次的循环的作用是取出全部的值 每个都和本身后面的值进行比较 这里n-1是因为在最后一个的时候不用比较了,在前一项后两个数字已经排好序了。
        for (int j=i+1; j<n; j++) {//这个的循环就是把前面固定的和后面的依次比较,
            if (a[i]>a[j]) {//固定的值和后面比较
                int m=a[i];//定义一个第三个量来过度 比较的两者交换,把i中的值保存在m中
                a[i]=a[j];//把j的给i
                a[j]=m;//在把保存在m中的值给j
            }
        }
    }
    printf("输出排序后的数字:\n");
    for (int k=0; k<n; k++) {//把新的排序好的数组依次输出
        printf("%3d",a[k]);
    }
    printf("\n");
    return 0;
}
int main(){
    int n;  //定义一个变量 来表示将要输入几个数字来比较;
    printf("请输入要比较数字的个数:\n");  //提醒输入的人将要输入什么东西
    scanf("%d",&n);  //在显示面上输入比较的个数
    int a[n];//定义一个数组
    printf("请输入要比较的数字并以空格隔开:\n");//提醒用户将要输入比较的值
    for(int i=0;i<n;i++)//把每个将要输出的值用下面的scanf输出来
    scanf("%d",&a[i]);
    printf("%d",fun(a,10));//调用这个函数
}

 

选择排序