在这里我将讨论数组的排序问题,并引入插入排序算法和递归算法求解。
1、插入排序
这里通过算法导论中的伪代码说明算法过程。
Insertion-sort(A)
for(j=2 to A.length)
key=A[j]
//Insert A[j] into 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
//over
算法说明:
1)j=2,从数组的第二个元素开始迭代即当前手中的牌只有一张,桌面有A.length-1张牌;
2)假设j为当前插入的牌。若当前牌A[j]大于手中最大的牌A[i](因为排序好了),则将其插入(最大牌)前面;