/** * @Author leijs * @date 2021/8/16 */public class SelectSort { public static void main(String[] args) { int[] arr = {1, 4, 3, 6, 8, 4, 9, 6, 2}; int[] arr1 = sort(arr); for (int i = 0; i < arr1.length; i++) { System.out.print(arr1[i]); } } /** * 选择排序: * 将第一个值看成是最小值,然后和后续的比较找到最小值和小标 * 交换本次遍历的起始值和最小值 * 说明:每次遍历的时候,将前面找出的最小值看成是一个有序的列表, * 后面的看成是一个无序的列表,然后每次遍历无序列表找出最小值 * * @param arr */ public static int[] sort(int[] arr) { for (int i = 0; i < arr.length; i++) { // 默认第一个是最小的 int min = arr[i]; // 记录最小的下标 int index = i; // 通过和后面的数据进行比较得出最小值和下标 for (int j = i + 1; j < arr.length; j++) { if (arr[j] < min) { min = arr[j]; index = j; } } // 然后将最小值与本地循环的,进行交换 if (index != i) { int temp = arr[i]; arr[i] = min; arr[index] = temp; } } return arr; }}