“”"
插入排序:必须有一个新的列表,空间换时间
0 1 2 3 4 5 6
a = [99,88,11,22,55,66,77]
从堆里面拿一张
0
b = [99]
88过来了 88和99比较,放在 0 的位置
0 1
[88,99]
11过来了 会和所有元素比较,放在 0 的位置
0 1 2
[11,88,99]
22过来了 和11(0)比较,在11的后面,放在 1 的位置
0 1 2 3
[11,22,88,99]
55过来了 和22(1)比较,在22的后面,放在 2 的位置
0 1 2 3 4
[11,22,55,88,99]
66过来了 和55(2)比较,在55的后面,放在 3 的位置
0 1 2 3 4 5
[11,22,55,66,88,99]
77过来了 和66(3)比较,在55的后面,放在 4 的位置
0 1 2 3 4 5 6
[11,22,55,66,77,88,99]
“”"
list = [99,88,11,22,55,66,77]
print("排序之前:%s"%list)
list_sorted = [] #定义一个新的列表,存储排序之后,打牌,左手已经抓牌
for item in list:
#(1)确定位置,放在那里
index = 0#存储位置
last = len(list_sorted)-1 #最后一个元素的下标
for i in range(last,-1,-1): #i的值【最后下标,0)
if item > list_sorted[i]:
index = i + 1#放在后面位置
break
#(2)放进去
list_sorted.insert(index,item)
print("排序之后:%s"%list_sorted)