类似于整理桥牌的方法:把每一张牌插入到之前已有的有序牌堆当中的适当位置。
也就是将c[ j ] 按大小插入到c[ j-1], c[ j-2 ],...,c[ 0 ]的合适位置。先把从c[ j ]放到一个临时位置Tmp上,从c[ j-1 ]开始,从后向前依次与Tmp比较大小,如果Tmp小于与之相比较的牌点,就把那张牌向后挪一位,直到Tmp的牌点大于等于与之相比较的牌点时停止,将Tmp放到此时的位置上。
插入排序所需的时间取决于输入数组的初始顺序。
print("插入排序")
c=[3,1,7,5,9,0,8,2,6,4]
def Insertion_sort(c):
N = len(c)
for p in range(1,N):
Tmp=c[p]
i=p
while i>0 and c[i-1]>Tmp:
c[i]=c[i-1]
i=i-1
c[i]=Tmp
return c
Insertion_sort(c)