数组那部分的选择排序,小白晕不晕?
#include <stdio.h>
int main(){
//要排序的数组
int a[] = {1,2,4,3,8,5};
//最大值脚标
int max = 0;
for (int i = 0; i<5; i++) {//第几轮排序
max = i ;
for (int j = i + 1; j<6; j++) {//当前这轮排序的具体实现
if (a[max]<a[j]) {
max = j;//如果a[j]大于先前"最大值",改变"最大值脚标"
}
}
//输出每轮排序的最大值脚标
printf("第%d轮排序的最大值角标是%d\n",i,max);
//把找到的最大值和之前的最大值互换
int temp = a[i];
a[i] = a[max];
a[max] = temp;
}
for (int k = 0;k<6;k++){
printf("%d\t",a[k]);
}
return 0;
} |