直接选择排序比较简单,步骤: (1)选出序列中最小的元素; (2)和序列中第一个元素进行交换; (3)从序列第二个位置开始,在剩余的序列元素中重复上面的步骤直到排序完成。 代码如下:unix环境2011-02-12 #include <stdio.h> #include <stdlib.h> void print(int a[], int len) { int i; for(i = 0; i < len; i++) printf("%d/n",a[i]); } void SelectSort(int a[], int len) { int i,j,k,temp; for(i = 0; i < len-1; i++) { k = i; for(j = i+1; j < len; j++) { if(a[k] > a[j]) { k =j; } } temp = a[i]; a[i] = a[k]; a[k] = a[i]; } } int main(int argc,char *argv[]) { int len = 10; int a[len]; int i = 0; for(i = 0; i < len; i++) { a[i]=rand(); } printf("the list befor sorting is:/n"); print(a, len); printf("the list after sorting is:/n"); SelectSort(a, len); print(a, len); return 0; }