Skip to content

选择排序:在排序的过程中,已排序的就是最终的最小值

插入排序:在排序的过程中,前面是当前排序的最小值,并不代表最终结果。如果当前元素比之前的元素小,则插入到之前的元素中去。

插入排序

编码实战

java
public class InsertionSort {

    private InsertionSort() {}

    public static <E extends Comparable<E>> void sort(E[] array) {
        for (int i = 1; i < array.length; i++) {
            for (int j = i; j - 1 >= 0; j--) {
                if (array[j].compareTo(array[j - 1]) < 0) {
                    swap(array, i, j);
                }
            }
        }
    }

    private static <E> void swap(E[] arr, int i, int minIndex) {
        E t = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = t;
    }
}