基本思想:第i趟排序从序列的后n-i+1(i=1,2,……,n-1)个元素中选择一个最小的元素,与该n-i+1个元素的最前面那个元素进行位置交换,也就是与第i个位置上的元素进行交换,直到i=n-1。直观地说,每一趟的选择排序就是从序列中未排好顺序的元素中选择一个最小的元素,将该元素与这些未排好顺序的元素的第一个元素交换位置。
void selectsort(keytype k[],int n) {
int i,j,min;
keytype tmp;
for(i=1;i<=n-1;i++) {
min = i;
for(j=i+1;j<=n;j++) {
if(k[j] < k[min])
min =j;
if(min !=i) {
tmp = k[min];
k[min]= k[i];
k[i] = tmp;
}
}
}
}