public static void insertionSort(int[] ints) {
    for (int i = 0; i < ints.length; i++) {

        for (int j = i; j > 0; j--) {

            if (ints[j] < ints[j - 1]) {
                exch(ints, j, j - 1);

            } else {
                break;
            }
        }
    }
}

Insertion Sort

  • 适用于小数组,数组已排好序或接近于排好序速度将会非常快

  • 复杂度:O(n^2) - O(n) - O(n^2) - O(1)[平均 - 最好 - 最坏 - 空间复杂度]

public static void insertSort(int[] a) {
    if (a == null || a.length <= 1) {
        return;
    }
    for (int i = 1; i < a.length; i++) {
        int temp = a[i];
        int j = i - 1;
        while (0 <= j && temp < a[j]) {
            a[j + 1] = a[j];
            j -= 1;
        } 
        a[j + 1] = temp;
    }
}

results matching ""

    No results matching ""