插入排序
思路:
代码:
def insertsort(A):
#初始化变量
j=0
for j in range(len(A)):
key=A[j] #这里把key存一下
i=j-1 #从j的前一个位置开始排查
while i>-1 and A[i]>key:
A[i+1]=A[i] #满足条件,就换位,向后换位,第一次会把要插入的值的位置占掉,但没关系,已经用key存住了
i=i-1 #往前走一步,为下一次做准备
A[i+1]=key #找到位置放进去
return A
#print(insertsort([1,232,444,22,14,4]))
循环不变式
初始化:循环的第一次迭代之前,他为真
保持:如果循环的某次迭代之前他为真,那么下次迭代之前她仍为真
终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法式正确的。