初始时手里(有序区)只有一张牌每次(从无序区)摸一张牌,插入到手里已有的正确位置
def
insert_sort(li
):
for i in
range(1, len(li
)): #i 表示摸到的牌的下标
tmp
= li
[i
]
j
= i
-1 #j指的是手里的牌的下标
#大的牌进入 小的牌退出
while j
>=0 and li
[j
] > tmp
:
#往右移动
,大的牌往右走 新来的牌插入到j
+1的位置
li
[j
+1] = li
[j
]
#j的箭头往左移动
j
-= 1
#插入j
+1
li
[j
+1] = tmp
print(li
)
li
= [3,2,4,1,5,7,9,8]
print(li
)
insert_sort(li
)
#print(i)
时间复杂度 O(n2)