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