将前面的元素当作已经排好序的,再一次插入其中与其进行比较
版本1:
def insertion_sort(lst):
for i in range(1, len(lst)):
for j in range(i, 0, -1):
if lst[j-1] > lst[j]:
lst[j-1], lst[j] = lst[j], lst[j-1]
else:
break
return lst
只要第一次比较不成功 就立马break
版本2:
def insert_sort(a):
for i in range(1, len(a)):
k = i - 1
key = a[i]
while k >= 0:
if a[k] > key:
a[k], a[k + 1] = key, a[k]
k -= 1
return a