折半插入排序(仅适用于顺序表)
void InsertSort(int A[],int n){
int i,j,low,high,middle;
for(i=2;i<n;i++){
A[0]=A[i];//第0个位置不存放元素,用来做哨兵
low=1;
high=i-1;
while(low<=high){//寻找插入的位置
middle=(low+high)/2
if(A[0]<A[middle])
high=high-1;
else low=middle-1;
}
for(j=i-1,j>=high;--j)
A[j+1]=A[j];
A[high+1]=A[0];
}
}