INSERT_SORT(A)
1. for j<--2 to length[A]
2. do key<--A[j]
3. #把A[j]插入到前面已经排好序的序列A[1...j-1]里面去
4. i<--j-1
5. while i>0 and A[i]>key
6. do A[i+1]<--A[i]
7. i<--i-1
8. A[i+1]<--key
排序的思想类似右手摸牌,左手整理牌。
算法的核心在于“把A[j]插入到前面已经排好序的序列A[1...j-1]里面去”
由于是已经排好序, 如果 A[i]<key,什么都不需要做,直接插入就行。
否则,就要向后移动,然后插入。
2. key暂存A[j],方便后移不覆盖A[j]。
8. 跳出while后,需要插入的位置是i+1
输入规模
输入规模的量度标准与具体问题有关。
运行时间
特定输入时,所执行的基本操作数(步数)。