选择排序是除了冒泡排序之后又一最基本的排序算法,具体算法小弟表达能力有限,为了不误导大家,请自行wiki,此处仅贴出代码:
#include <stdio.h>
int main(void) {
int num[] = {4,1,2,7,3,9,6,5,8};
int i, j;
int min, tmp, cur = 0;
for (i = 0; i < 9; i++) {
min = i;
for (j = i + 1; j < 9; j++) {
if (num[j] < num[min]) {
min = j;
}
}
tmp = num[i];
num[i] = num[min];
num[min] = tmp;
}
for (; cur < 9; cur++) {
printf("%d, ", num[cur]);
}
printf("\n");
return 0;
}
运行结果如下:
cheny.le@cheny-ThinkPad-T420:~$ gcc select_sort.c
cheny.le@cheny-ThinkPad-T420:~$ ./a.out
1, 2, 3, 4, 5, 6, 7, 8, 9,
需要注意的是,内层循环从外层循环的下一个开始,默认第一个整数是最小整数。