选择法排序

  我们对一组数据进行从小到大或者从大到小排序的时候,可以利用数组能够储存字符的性质,使用选择排序法对数据进行排序。(以从小到大排列为举例)

   选择法排序,从第一个数字开始,将第一个数字往后的数字跟第一个进行比较,如果第一个数字比第一个数字往后的数字(n-1个)进行比较,如果后面的数据有比它小的,就与第一个数据进行交换。

第二个数字的时候,则需要比较n-2次,以此类推,就可以得到从小到大的排列了

   代码如下:

#include<stdio.h>
#define maxn 10
int main() {
int i, n, min=0,j,temp,k;
int a[maxn];
scanf("%d", &n);

for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
for(i=0;i<n-1;i++){
min = i;                  //从第一个开始,也就是a[0],一直到a[n-1]
for (k = i + 1; k < n; k++) {            //k=i+1的目的,就是比较i往后的数字与i进行比较
if (a[min] > a[k]) {
temp = a[min];
a[min] = a[k];        //,如果比a[i]大,则交换。
a[k] = temp;
}
}
}
for (i = 0; i <n; i++) {
printf("%d ", a[i]);    //输出
}return 0;
}

posted @ 2021-11-07 20:37  周轩  阅读(248)  评论(0编辑  收藏  举报