C语言的选择排序法中心思想就是 重复 遍历找出最大的值 然后将最大的值放到最后面
代码实现:
#include <stdio.h>
int main() {
int maxid(int a[10], int len);
int a[10] = {22, 12, 99, 26, 89, 20, 52, 77, 20, 10}, len;
len = sizeof(a) / sizeof(a[0]);
int id;
for (int i = len - 1; i > 0; i--) {
// i 之所以等于 len-1 是因为 访问a[i]最大只能访问 a[len-1]
id = maxid(a, i + 1);
int t;
t = a[id];
a[id] = a[i];
a[i] = t;
}
for (int i = 0; i < len; ++i) {
printf("%d ", a[i]);
}
/*printf("%d", a[id]); 这是一行程序编写过程测试 maxid 返回id值的准确性*/
return 0;
}
int maxid(int *a, int len) {
int maxid = 0;
for (int i = 1; i < len; ++i) {
if (a[maxid] < a[i]) {
maxid = i;
}
}
return maxid;
}