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
相关推荐
ym hyd 1114 小时前
试题库管理系统源码 Java+SpringBoot+Vue3 前后分离AC赳赳老秦4 小时前
采集行为合规自检:OpenClaw 自动校验 robots 协议与采集频率,规避违规采集风险钱栈up5 小时前
mvn compile 卡死在 javac 阶段:一次类型不匹配的排查与修复吠品6 小时前
CSS图片模糊过渡:一个transition加filter就够朝朝辞暮i7 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起步行cgn7 小时前
Spring 全注解开发详解青梅橘子皮7 小时前
Blue---二分算法(二分查找与二分答案)长河7 小时前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法code2cat7 小时前
Java进阶篇之LongAdder:把统计更新分散,再读取总和月光船幽幽7 小时前
加性偏移外推提升参数识别可靠性