public static void merge(int[]arr,int low,int middle,int high){
int[]temp=new int[high-low+1];
int i=low; //第一个数组需要遍历的下标
int j=middle+1; //第二个数组
int index=0;
while(i<=middle && j<=high){
if(arr[i]<=arr[j]){
temp[index]=arr[i];
i++;
index++;
}else{
temp[index]=arr[j];
j++;
index++;
}
}
while(i<=middle){
temp[index]=arr[i];
i++;
index++;
}
while(j<=high){
temp[index]=arr[j];
j++;
index++;
}
for(int k=0;k<temp.length;k++){ //把临时数组中的元素放回
arr[low+k]=temp[k];
}
}