(1)思想:第i(i=0,i=1,...,i=n-2)次遍历,从后面n-i(包含第i个)个元素中选择最小的元素与第i个元素交换。
(2)c++实现:
void selectSort(int a[],int n){
for(int i=0;i<n-1;i++){
int k = i;
for(int j = i+1;j<n;j++){
if(a[j] < a[i])
k = j;
}
if(k != i)//最小的元素并不是当前的第i个元素,需要交换元素
swap(a[i],a[k]);
}
}
(3)复杂度:o(n^2);