插入排序

    技术2022-07-11  109

    插入排序

    介绍

    这是一个对少量元素进行排序的有效算法。它将被插入元素与已经排好序的元素从右往左以此对比,遇到比它大的元素则将该元素向后移动一位,知道找到合适的位置插入

    java代码

    void insert_sort(int[] array){ if(array == null || array.length == 0 || array.length == 1) return; int val,int index; for(int i = 1; i < array.length; i++){ val = array[i]; index = i; while(index >= 1 && val < array[index - 1]){ array[index] = array[index - 1] index--; } array[index] = val; } }

    算法性能

    时间复杂度

    当数组已经排好序时,复杂度O(n) 最坏情况复杂度O(n^2)

    空间复杂度

    由于插入排序是in-place排序,空间复杂度为O(1)

    稳定性

    如果碰见一个和被插入元素相等的,那么被插入元素放在相等元素的后面。所以,相等元素的前后顺序没有改变,从原无序序列出去的顺序就是排好序后的顺序,所以插入排序是稳定的

    Processed: 0.010, SQL: 9