原理
public static void main(String[] args) { int[] arr = {100,34,29,39,20,79,56}; selectionSort(arr); } public static void selectionSort(int[] arr) { //原理: 每次找到无序最小的,然后将最小的和本次无序的首位交换位置 //外层为找的次数,内层为比较和交换次数,内层:开始索引为i+1, //外层循环; 找到的次数 for (int i = 0; i < arr.length - 1; i++) { int minIndex = i; //内存循环: 无序列表中第一个数和其他的数进行比较 进行比较,找到最小的一个的索引,并和第一个数交换位置 for (int j = i + 1; j < arr.length; j++) { if (arr[minIndex] > arr[j]) { minIndex = j; } } int tmp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = tmp; System.out.println(Arrays.toString(arr)); } }
运行结果:
完