闲暇时间,在看《算法导论》,在此做一点微薄的记录。
插入排序:伪代码
INSERTION-SORT(A)
for j=2 to A.length
key=A[ j ]
//insert A[ j ] into the sorted sequence A [ 1..j-1 ]
i=j-1
while i>0 and A[ i ]>key
A[ i+1 ]=A[ i ]
i=i-1
A[ i+1 ]=key
初始化:循环的第一次迭代之前,它为真。
保持:如果循环的某次迭代之前它为真,那么下次迭代之前,它仍为真。
终止时为真。
然后,分析算法的效率。
在最好情况下,它是n的线性函数
在最坏和平均情况下,它是n的二次函数。n为输入规模。
该排序设计方式为增量法,即在排序子数组A[1..J-1]后,将单个元素A[ j ]插入子数组的适当位置,产生排序好的数组A[ 1...j ]