閒暇時間,在看《算法導論》,在此做一點微薄的記錄。
插入排序:僞代碼
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 ]