方法:
1、将序列中待排序的数字分为若干组,每个数字为一组
2、将这些组两两合并,使合并后的新序列是有序的
3、重复2的操作直到合并到最后一组
代码:
void Merge(SqList L,int low,int m,int high) {
int i,j,k;
i=low;
j=m+1;
k=0;
int * a;
a=L.r;
int * r=new int[high-low+1];while(i<=m&&j<=high) {
if(a[i]<=a[j]) r[k++]=a[i++];
else r[k++]=a[j++];
}
while(i<=m)
r[k++]=a[i++];
while(j<=high)
r[k++]=a[j++];
for(k=0,i=low; i<=high; k++,i++)
a[i]=r[k];
delete [] r;
}