假设有一组数据
选择排序先把第一个数据元素固定(图中的5),然后在后面的数组中找到最小的一个数据(图中的1),然后把1和5交换位置。
然后固定第二个元素的位子(9),继续在后面数据中找最小的(3),然后互相交换位置,依次循环,实现排序。
public void Test(){
int[] arry = {5, 9, 3, 4, 1};
for (int i : arry) {
System.out.print(i + "");
}
System.out.println();
selectSort(arry);
for (int i : arry) {
System.out.print(i + "");
}
}
//选择排序
public static void selectSort(int[] array){
//array.length-1 是为了 最后一个数不用比
for (int i = 0;i<array.length-1;i++) {
int index = i;
//i+1 是为了减去自己跟自己比
for (int j = i+1; j < array.length; j++) {
if (array[j] < array[index]) {
index = j;
}
}
if (index !=i){
//找到最小值
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
}