python排序算法-插入排序
一、插入排序
可将插入排序看做摸牌过程,有序区记为手里的牌,无序区记为被摸牌
1.初始时手里(有序区)只有一张牌
2.每次(从无序区)摸一张牌,插入到自己手里已有牌的正确位置
二、代码
def insert_sort(li):
for i in range(1, len(li)):
tmp = li[i] # 被摸的牌
j = i - 1 # 开始时为手里最后一张牌的下标
while j > 0 and j > tmp:
li[j + 1] = li[j] # 手里被比较的牌向右移动,被摸牌插到左边
j -= 1 # 依次向左比较手里的牌
li[j + 1] = tmp # 省略else,被摸牌比手里的牌大,插入到右边
测试
ls2 = [53, 27, 36, 15, 69, 42]
insert_sort(ls2)
print(ls2)
结果