【经典排序算法 time: 2023-10-12】选择排序

  1. 原理
    每次循环找出最小的一个元素(动态演示)
  2. 选排代码
public class SelectSort {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        int[] arr = {11, 23, 69, 99, 1, 3, 45, 67, 5, 234, 678, 7, 123, 999};
        int[] result = selectSort(arr);
        System.out.println(Arrays.toString(result));
        System.out.println(System.currentTimeMillis()-start);
    }

    private static int[] selectSort(int[] arr) {
        int len = arr.length;
        for (int i = 0; i < len - 1; i++) {
            int target = i; // 最小值索引
            for (int j = i + 1; j < len; j++) {
                if (arr[target] > arr[j]) {
                    target = j;
                }
            }
            if (target != i) {
                swap(arr, i, target);
            }
            System.out.println(Arrays.toString(arr));
        }
        return arr;
    }

    public static void swap(int[] a, int i, int j) {
        int t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
}

你可能感兴趣的:(排序算法,排序算法,算法,java)