时间复杂度:O(nlog2n)
#define maxSize 10005 void merge(int R[],int low,int mid,int high) { int i=low,j=mid+1,k=low; int tmp[maxSize]; while(i<=mid&&j<=high) { //谁小把谁放进tmp[] if(R[i]<=R[j])tmp[k++]=R[i++]; else tmp[k++]=R[j++]; } while(i<=mid)tmp[k++]=R[i++]; while(j<=high)tmp[k++]=R[j++]; for(i=low;i<=high;i++)R[i]=tmp[i]; } void mergesort(int R[],int low,int high) { if(low<high) { int mid=(low+high)/2; mergesort(R,low,mid); mergesort(R,mid+1,high); merge(R,low,mid,high); } }