public class SelectSort {
public static void main(String[] args) {
int[] arr = {101, 34, 119, 1};
selectSort(arr);
}
//选择排序
public static void selectSort(int[] arr) {
//使用逐步推导的方式来,讲解选择排序
//第1轮
//原始的数组: 101,34,119,1
//第一轮排序: 1,34,119,101
int minIndex = 0;//最小值的数组索引值
int min = arr[minIndex];//最小值
for (int i = 0 + 1; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
minIndex = i;
}
}
//交换
arr[minIndex] = arr[0];
arr[0] = min;
System.out.println("第一趟排序结果:");
System.out.println(Arrays.toString(arr));
//第2轮
minIndex = 1;//最小值的数组索引值
min = arr[minIndex];//最小值
for (int i = 0 + 2; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
minIndex = i;
}
}
//交换
arr[minIndex] = arr[1];
arr[1] = min;
System.out.println("第二趟排序结果:");
System.out.println(Arrays.toString(arr));
//第3轮
minIndex = 2;//最小值的数组索引值
min = arr[minIndex];//最小值
for (int i = 0 + 3; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
minIndex = i;
}
}
//交换
arr[minIndex] = arr[2];
arr[2] = min;
System.out.println("第三趟排序结果:");
System.out.println(Arrays.toString(arr));
}
}