import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] arr = {100,35,118,1};
selectSort(arr);
}
public static void selectSort(int[] arr){
// 选择排序时间复杂度O(n^2)
// 外层for循环 要进行多少轮比较 arr.length-1
for (int i = 0; i < arr.length-1; i++) {
int minIndex = i;
int min = arr[i];
// 内层for循环 每轮循环要进行多少次比较
for (int j = i+1; j < arr.length; j++) {
if (min > arr[j]){ // 说明假定的最小值并不是最小
min = arr[j]; // 重置min
minIndex = j; // 重置minIndex
}
}
// 将最小值,放在arr[0],即交换
if (minIndex != i){
arr[minIndex] = arr[i];
arr[i] = min;
}
System.out.println("第"+(i+1)+"轮比较");
System.out.println(Arrays.toString(arr));
}
}
}