選擇排序:外循環(huán)循環(huán)一輪,就是拿這個(gè)固定位置的數(shù)與后面比較,確保當(dāng)前這個(gè)位置的數(shù)是這個(gè)位置之后的所有數(shù)據(jù)的最小值.不明白意思的話看代碼:(注釋掉的代碼)
package com.qf.demo4;
public class Test2 {
public static void main(String[] args) {
int[] a = {5,18,9,2,6,3};
// for (int i = 0; i < a.length-1; i++) {
// for (int j = i+1; j <= a.length-1; j++) {
// if(a[i]>a[j]){
// int temp = a[i];
// a[i] = a[j];
// a[j] = temp;
// }
// }
// }
// 選擇排序的優(yōu)化: 提高效率
// 6個(gè)數(shù) 至多 交換5次
for (int i = 0; i < a.length-1; i++) {
int min = i;
for (int j = i+1; j <= a.length-1; j++) {
if(a[min]>a[j]){
min = j;// 把 最小的數(shù)據(jù)的下標(biāo)給 min
// min 一直是最小的數(shù)據(jù)的下標(biāo)
}
}
//如果當(dāng)前最小值不是a[i] , 即下標(biāo)不同時(shí) ,交換
if(i!=min){
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
for (int i : a) {
System.out.println(i);
}
}
}