void SelectSort(ElemType A[],int n){
for(i=0;i<n-1;i++){ //一共进行n-1趟
min=i; //记录最小元素位置
for(j=i+1;j<n;j++) //在A[i]到A[n]中找到最小的元素
if(A[j]<A[min]) min=j; //如果找到最小元素,则交换下标
if(min!=i) swap(A[i],A[min]); //如果min最小的下标位置变了,说明最小值min的位置已更新,然后
//互换元素
}
}
这种算法很简单,第一个元素的下标首先初始化为最小值,
然后循环在后面的元素比较,如果发现比min更小,则交换下标,
循环结束后根据下标交换出最小值的位置,
然后从第二个元素初始化为最小值min,与后面的元素依次对比……
以此类推。