插入排序(Insertion Sort),初始 有序区 只有一个数,每次从 无序区 取一个数与 有序区 比较,然后在 有序区 中从后向前扫描,并插入有序区的正确位置。
代码实现
def insert_sort(li):
for i in range(1, len(li)): # 遍历无序区
tmp = li[i] # 用一个变量存数
j = i - 1 # 有序区数的下标
while j >= 0 and li[j] > tmp: # 若有序区数比无序区数大则往右移
li[j+1] = li[j] # 向右移动
j -= 1 # 往前遍历有序区的数
li[j+1] = tmp # 若有序区数不比无序区数大则将其放到 j+1 的位置
|