首页 > 代码库 > 选择排序
选择排序
选择排序就是第一个数和后面的比较;在是第二个 依次进行;每次把最大或者最小的排出来。
#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));//调用这个函数
}
选择排序