- // 注意数的个数太多的情况下, 数组开全局
- static int a[]=new int[100005];
- static int b[]=new int[100005];
- public static void merge_sort(int a[],int l,int r){
- if(l>=r) return;
- int mid=l+r>>1;
- merge_sort(a,l,mid);
- merge_sort(a,mid+1,r);
- int k=l,i=l,j=mid+1;
- while(i<=mid&&j<=r){
- if(a[i]>a[j]) b[k++]=a[j++];
- else b[k++]=a[i++];
- }
- while(i<=mid) b[k++]=a[i++];
- while(j<=r) b[k++]=a[j++];
- for(int t=l;t<=r;t++) a[t]=b[t];
来源: http://www.bubuko.com/infodetail-3377634.html