本文共 771 字,大约阅读时间需要 2 分钟。
实现选择排序(Selection Sort)算法:第一次从数组 a[0..LEN-1] 中找出最小元素交换到 a[0] 的位置,第二次从数组 a[1..LEN-1] 中找出最小元素交换到 a[1] 的位置,依此类推。排序过程举例如下:
10, 5, 2, 4, 7
2, 5, 10, 4, 7 2, 4, 10, 5, 7 2, 4, 5, 10, 7 2, 4, 5, 7, 10#include#define LEN 5int a[LEN] = { 10, 5, 2, 4, 7};void selection_sort(void){ int i,j,min,temp; for(j = 0;j < LEN; j++) { printf("%d, %d, %d, %d,%d\n",a[0], a[1], a[2], a[3], a[4]); min = a[j]; for(i = j+1;i < LEN; i++){ if( min >= a[i]) {min = a[i]; temp = i; } } printf("%d\n",temp); a[temp] = a[j]; a[j] = min;// printf("%d, %d, %d, %d,%d\n",a[0],a[1],a[2],a[3],a[4]);}}int main(void){ selection_sort(); return 0;}