拿一個(gè)元素(當(dāng)前元素)和剩下的(除去排好序的)比較,獲得最小值索引 然后和當(dāng)前元素交換
注意:
開始取a[i] 為a[min] ,a[min] 和a[i→n]第一個(gè)比較 ,不過(guò)不是和全部的比較
因?yàn)閍[i→n]比a[0]小的有很多,
應(yīng)該是取到一個(gè)比a[min]小的值 要把當(dāng)前索引賦值給min 然后繼續(xù)遍歷
遍歷完內(nèi)層循環(huán)后就會(huì)得到最小值的索引,然后和a[i]交換
@Test
public void test(){
int[] a = {4, 2, 5, 3, 1, 0};
selection(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + ",");
}
}
public void selection(int[] a){
for (int i = 0; i < a.length; i++) {
int min = i;
for(int j = i + 1; j < a.length; j++){
if(less(a[j], a[min])){
min = j;
}
}
exch(a, i, min);
}
}