选择排序:
对于一个序列A中的元素A[1]~A[n],令i从1到n枚举,进行n趟操作,每趟从待排序部分[i, n]中选择最小的元素,令其与待排序部分的第一个元素A[i]进行交换,这样元素A[i]就会与当前有序区间[1, i-1]形成新的有序区间[1, i-1]。
代码:
void selectSort()
{
for(int i=0; i<=n; i++){
int k=i;
for(int j=i; j<n; j++) //选出[i,n]中最小的元素
{
if(A[j]<A[k])
k = j;
}
int temp = A[i];
A[i] = A[k];
A[k] = temp;
}
}
过程为: