归并排序
import java.util.*; public class Solution { public int[] MySort (int[] arr) { mergeSort(arr,0,arr.length-1); return arr; } public void mergeSort(int[] arr,int left,int right){ if(left<right){ int middle = left + (right-left)/2; mergeSort(arr,left,middle); mergeSort(arr,middle+1,right); merge(arr,left,middle,right); } } public void merge(int[] arr,int left, int middle,int right){ int[] temp = new int[right-left+1]; int index = 0; int i = left,j = middle+1; while(i <= middle && j<=right){ if(arr[i] < arr[j]){ temp[index++] = arr[i++]; }else{ temp[index++] = arr[j++]; } } while(i<=middle){ temp[index++] = arr[i++]; } while(j<=right){ temp[index++] = arr[j++]; } for(int k = 0;k<temp.length;k++){ arr[left+k] = temp[k]; } } }