public static void mergeSort(int[] arr1,int left,int right){
if(left>=right){
return;
}
int middle=(left+right)/2;
mergeSort(arr1,left,middle);
mergeSort(arr1,middle+1,right);
merge(arr1,left,right);
}
public static void merge(int[] arr1,int left,int right){
int middle=(left+right)/2;
int[] newArr=new int[right-left+1];
int i1=left;
int i2=middle+1;
for(int i=0;i<newArr.length;i++){
if(i1>middle){
newArr[i]=arr1[i2];
i2++;
} else if(i2>right){
newArr[i]=arr1[i1];
i1++;
}else if(arr1[i1]<arr1[i2]){
newArr[i]=arr1[i1];
i1++;
} else{
newArr[i]=arr1[i2];
i2++;
}
}
//跟新
for(int i=0;i<newArr.length;i++){
arr1[i+left]=newArr[i];
}