算法
以某个值或者值的集合作为输入,通过计算过程,输出/产生 某个值或者值的集合。
算法就是中间转换过程的计算步骤的序列。
效率
效率隐含的考察对象不同(问题域大小等),算法优劣也不同。
循环不变式
循环不变式,用于帮助我们证明和理解算法的正确性(可证伪)
循环不变式的三条性质:
1、循环的第一次迭代前,为真
2、某次循环迭代之前为真,下次迭代之前仍为真
3、在循环终止时,不变式提供出有用的证明算法正确性的性质
def insertion_sort_low(l):
L = [l[0]]
for n in l[1:]:
for i, m in enumerate(L):
if n <= m:
L = L[:i] +[n] + L[i:]
break
else:
L = L +[n]
return L
@consuming
def insertion_sort_high(l):
L = [l[0]]
for n in l[1:]:
for i, m in enumerate(L):
if n > m:
L = L[:i] + [n] + L[i:]
break
else:
L = L + [n]
return L