1、算法描述,插入排序的工作原理很类似我们抓扑克牌,对于未排序数据(右手抓到的牌),在已排序序列(左手已经排好的手牌)中从后向前扫描,找到对应位置并插入。——该段描述来自公众号“老九学堂”
2、python代码:
def insert_sort(a):
length = len(a) # 获取数组长度
for i in range(1,length):
get = a[i] # 右手所抓的牌
j = i - 1 # 左手已经排好序的牌的最大下标
while j>=0 and a[j]>get: # 当抓到的牌小于左手的牌时,右移左手的牌
a[j+1] = a[j]
j = j - 1
a[j+1] = get # 当该手牌比抓到的牌小,将抓到的牌插入到该手牌右边
return a