归并排序
排序原理
将数组看做左右两半,使左半部分和右半部分成为有序的,那么通过比较左右两半数组的元素再进行一次排序就可以保证数组整体上有序。
排序示意图:
代码实现
public static void process(int[] arr,int L,int R){
if(L == R){
return;
}
//取中点,这里是防止数组特别大时溢出
int mid = L + ((R - L) >> 1);
process(arr,L,mid);
process(arr,mid+1,R);
merge(arr,L,mid,R);
}
public static void merge(i