Home

LinkWorld Algorithm Blog

11 Sep 2019

插入排序算法

插入排序算法

思路:以数组的第一个元素为初始数列,一个个增加,逐位插入,即插入排序算法。

代码实现

Python实现

class InsertSort:

    @staticmethod
    def sort(array):
        # 第一个元素就是有序序列了
        for i in range(1, len(array)):
            # 从后往前依次插入
            for j in range(i, 0, -1):
                if array[j] > array[j - 1]:
                    continue
                array[j], array[j - 1] = array[j - 1], array[j]
        return array

def main():
    array = [5, 3, 2, 1, 9, 8, 4, 0]
    print("插入排序:%s" % InsertSort.sort(array))

输出结果

插入排序:[0, 1, 2, 3, 4, 5, 8, 9]

附录

  • 时间复杂度
    • 平均:$O(n^2)$
    • 最坏的情况:$O(n^2)$
    • 最好的情况:$O(n)$
  • 空间复杂度:O(1)
  • 稳定性:稳定

博文

Til next time,
LinkWorld at 23:40

scribble