选择排序:首先找出数组中最小元素与位置0元素交换,再找出次最小元素与位置1元素交换,数组中所有元素按该方式放到对应位置,该算法称为选择算法。
import java.util.Arrays;
public class SelectSort{
public static void main(String[] args){
int a[] = {7, 6, 5, 2, 4, 3, 1};
selectSort(a);
System.out.println("排序完成后:" + Arrays.toString(a));
}
public static void selectSort(int[] a){
//需要a.length - 1轮循环
for(int i = 0; i < a.length - 1; i++){
int min = i; // 将当前位置定为最小值位置
//每轮循环选出一个最小值
for(int j = i + 1; j < a.length; j++){
if(a[j] < a[min]){
min = j;
}
}
//若序列已有序,不作交换
if(i != min){
int tem = a[i];
a[i] = a[min];
a[min] = tem;
System.out.println("第 "+ (i +1) +" 轮循环后: " + Arrays.toString(a));
}
}
}
}
输出:
第 1 轮循环后: [1, 6, 5, 2, 4, 3, 7]
第 2 轮循环后: [1, 2, 5, 6, 4, 3, 7]
第 3 轮循环后: [1, 2, 3, 6, 4, 5, 7]
第 4 轮循环后: [1, 2, 3, 4, 6, 5, 7]
第 5 轮循环后: [1, 2, 3, 4, 5, 6, 7]
排序完成后:[1, 2, 3, 4, 5, 6, 7]