当出现 i+2*len>n 时,则该趟MergePass()的子表数目为奇数,最后一个a[ ⌈n/len⌉ ,n-1] 无需和其他子表归并,直到若干趟MergePass()后,只剩两个子表时,将最后两个子表合并。
#includeusing namespace std;void Merge(int a[],int low,int mid,int high) //{ int *tmp=new int[high-low+1];//辅助数组用来合并 int i=low,j=mid+1,k=0; while(i<=mid&&j<=high) { if(a[i]