伪代码
1.
insertion-sort(A)
for j=1 to A.length-1
key=A[j]
//insert A[j] into sorted sequence A[0,...,j-2]
i=j-1
while(i>=0&&A[i]>key)
A[i+1]=A[i]
i=i-1
A[i+1]=key
2.(自己写的)
iterative-upper-bound(A,low,high,v)
while(high>low)
m=low+(high-low)/2
if(A[m]<=v)
low=m+1
else
high=m
return low
3.(自己写的)
recursive-upper-bound(A,low,high,v)
if(low>=high)
return low
m=low+(high-low)/2
if(A[m]<=v)
return recursive-upper-bound(A,m+1,high,v)
else
return recursive-upper-bound(A,low,m,v)