输入与输出
输入:<a1,a2,…an>
输出:<a1’,a2’,…an’>
升序
将序列A按照从小到大的顺序排列:
def upSort(A):
for j in range(2,len(A)):
key = a[j]
i = j-1
while i>=0 and a[i]>key:
a[i+1]=a[i]
i = i-1
a[i+1] = key
return A
降序
将序列按照从大到小的顺序排列:
def downSort(A):
for j in range(2,len(A)):
a[j] = key
i = j-1
while i>=0 and a[i]<key:
a[i+1]=a[i]
i = i-1
a[i+1]=key
return A
原理
循环不变式
在排序之前,假设前边1到** j-1个数已经排好序,而后面j到n**个数是未排序的
时间复杂度
所有步骤执行的次数之和,0(n2)
注意:每一个循环体的第一步,【for()或while()这一步】,执行次数为循环次数+1