每次选择一个最小的数和第一个位置进行交换。需要注意的是每次循环只需选择出最小值的下标即可。
public void selectSort(int[] a) {
for(int i=0;i<a.length;i++){
int k=i;
for(int j=i+1;j<a.length;j++){
if(a[j]<a[k]){
k=j;
}
}
if(k>i){
int temp = a[i];
a[i]=a[k];
a[k]=temp;
}
}
}
//稳定性:不稳定
最好、最差、平均时间复杂度均为:O(n^2)













网友评论