最近算法感觉到严重不足,所以补补算法。从一些简单的算法开始,每天一个算法,持续一个月,四个月后继续。
1.插入排序
插入排序的工作方式很像许多人排序一手扑克牌。开始时,我们的左手为空,并且桌子上的牌面向下。然后我们呢每次从桌子上拿走一张牌并将它插入左手中的正确位置。为了找到一张牌的正确位置,我们从右到左将他与已经在手中的牌进行比较。
我们用伪代码来表示,代码过程命名为:INSERTION-SORT,其中的参数是一个数组A[1,...,n],包含长度为n的要排序的一个序列。在代码中,A中元素的数目n用A.length来表示。(我们是在原数组的基础上进行的变动)
INSERTION-SORT(A)
for j=2 to A.length
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