排序算法之选择排序
排序思想:
假如数组有n个数待排序序号为{0......i.....n-1}
select_sort.c
1 #include"head.h" 2 3 void select_sort(int a[],int pos) 4 { 5 int i,j;//用来遍历数组 6 int temp = 0;//用来临时保存变量 7 for(i = 0;i < pos - 1;i++) 8 {//pos - 1轮选择 9 int min_index = i;//找出数组中第i小的数的序号 10 for(j = i + 1;j < pos;j++) 11 { 12 if(a[j] < a[min_index])//j为i后面一个数 13 { 14 min_index = j; 15 } 16 //第i小的数,放在第i个位置; 17 if(i != min_index) 18 { 19 temp = a[i]; 20 a[i] = a[min_index]; 21 a[min_index] = temp; 22 } 23 } 24 } 25 }
main.c
#include"head.h" int main() { int val;//保存输入的变量 int a[MAXLINE];//保存输入的数组 int pos = 0;//记录输入的值的个数 printf("请输入一组数据,按Ctrl+D结束\n"); while(scanf("%d",&val) != EOF) { a[pos] = val; ++pos; } for(int i = 0; i < pos ;i++) printf("%d ",a[i]); printf("\n"); //sort(a,pos); select_sort(a,pos); for(int i = 0; i < pos ;i++) printf("%d ",a[i]); printf("\n"); return 0; }

浙公网安备 33010602011771号