Seleccionar ordenar
principio
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));
}
}
resultado de la operación:
Terminar