public static void mergeSort1(int[] arr){
if(arr ==null || arr.length <2){
return;
}
process(arr, 0 , arr.length-1);
}
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(int[] arr , int L , int M , int R){
int[] help = new int[R-L+1];
int i =0;
int p1 = L;
int p2 = M+1;
while(p1 <= M && p2 <= R){
help[i++] = arr[p1] <= arr[p2] ? arr[p1++] :arr[p2++];
}
while (p1 <= M){
help[i++] = arr[p1++];;
}
while (p2 <= R){
help[i++] = arr[p2++];;
}
for (i = 0; i < help.length; i++) {
arr[L+i] = help[i];
}
}
归并排序(递归实现)
听风客12024-07-17 20:30
相关推荐
森叶8 分钟前
Java 比 Python 高性能的原因:重点在高并发方面二哈喇子!12 分钟前
Eclipse中导入外部jar包微露清风16 分钟前
系统性学习C++-第二十二讲-C++11罗湖老棍子19 分钟前
【例4-11】最短网络(agrinet)(信息学奥赛一本通- P1350)方圆工作室21 分钟前
【C语言图形学】用*号绘制完美圆的三种算法详解与实现【AI】Lips61142 分钟前
2026.1.16力扣刷题进阶小白猿1 小时前
Java技术八股学习Day20gis开发1 小时前
【无标题】Wpa.wk1 小时前
性能测试 - 搭建线上的性能测试环境参考逻辑图代码村新手1 小时前
C++-类和对象(中)