"""
插入排序:
其思想类似于手中有一些乱序的扑克牌,要将其整理为有序的。
首先拿第二张,与之前一张对比,小于第一张时交换顺序,大于时保持不动。
这样i轮过后,第i大的牌就会出现在第i个位置。
"""
import random
def insertion_sort(L):
#从下标1开始遍历
for j in range(1,len(L)):
key = L[j]
#取前一个元素的下标
i = j - 1
while i >= 0 and L[i] > key:
#判断前一个元素大于当前元素时
#当前元素指向上一个元素
L[i+1] = L[i]
i = i - 1
#如果判断成功,则上一个元素指向当前元素,否则引用不变
L[i+1] = key
return L
def test_sort():
L = list(range(10))
L = random.shuffle(L)
assert insertion_sort(L) == L
if __name__ == "__main__":
test_sort()
08_数据结构与算法_插入排序_Python实现
猜你喜欢
转载自blog.csdn.net/PyDarren/article/details/83422109
今日推荐
周排行