题目
重写过程INSERTION-SORT,使之按非升序排序。
分析
将while循环中的判断A[i] > key改为A[i] < key
过程的循环不变式为,在每次循环开始之前,子数组A[1…j-1]包含了已经排序好的数据,A[j...n]包含了未排序的数据
代码
def insertion_sort_dec(a):
for j in range(1, len(a)):
key = a[j]
i = j-1
while i >= 0 and a[i] < key:
a[i+1] = a[i]
i-=1
a[i+1] = key