插入排序

public static void sort(int[] array) {
    if (array.length == 0 || array.length == 1)
        return;
    for (int i = 1; i < array.length; i++) {
        int temp = array[i];
        int j;
        for (j = i - 1; j >= 0; j--) {
            if (array[j] > temp) {
                array[j + 1] = array[j];
            } else {
                break;
            }
        }
        array[j + 1] = temp;
    }
}

最優時間複雜度:O(n)java

平均時間複雜度:O(n^2)spa

最壞時間複雜度:O(n^2)code

平均空間複雜度:O(1)orm

插入排序若是對於相同的兩個數不會改變他們的先後順序,要麼插入到相同數據的前方,要麼插入到後方,可是相同數據的先後順序是不變的,因此是插入排序穩定的。排序

相關文章
相關標籤/搜索