插入排序

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

插入排序若是对于相同的两个数不会改变他们的先后顺序,要么插入到相同数据的前方,要么插入到后方,可是相同数据的先后顺序是不变的,因此是插入排序稳定的。排序

相关文章
相关标签/搜索