每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
方法/步骤
1ubuntu 14.04 linux cgcc (Ubuntu 4.8.2-19ubuntu1) 4.8.2
2#include#include#define DATA_SIZE 10void selection_sort(int array[],int num_size){ int index = 0,i = 0,j = 0,temp = 0; for(i = 0;i < num_size-1;i++) { index = i; for(j = i+1;j < num_size ;j++) { if(array[index] > array[j]) { index = j; } } if(index != i) { temp = array[i]; array[i] = array[index]; array[index] = temp; } }}int main(void){ int data[DATA_SIZE],i =0; printf('the original data seq :\n'); for(i = 0;i < DATA_SIZE;i++) { data[i] = rand() % 100; printf('%d,',data[i]); } printf('\n'); selection_sort(data,DATA_SIZE); printf('after selection sort the seq :\n'); for(i = 0;i < DATA_SIZE;i++) printf('%d,',data[i]); printf('\n'); return 0;}
3xxx@linux:~/code# gcc -o selection_sort selection_sort.c xxx@linux:~/code# ./selection_sort the original data seq :83,86,77,15,93,35,86,92,49,21,after selection sort the seq :15,21,35,49,77,83,86,86,92,93,