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
相关推荐
独隅2 分钟前
Claude API 实战教程:从入门到完整项目Wang's Blog23 分钟前
Java 项目实战: 交友项目 - 圈子功能实现:总结SL_staff36 分钟前
JVS私有化文档系统上线避坑指南:5大运维与业务协同断点及检测加固实践下一站春风里1 小时前
位运算完整学习笔记:按位与(&)+ 异或(^)DRobot1 小时前
【机械制图与CAD实战(二十五)】螺纹的表示方法用户老李2 小时前
卡尔曼滤波自学教程 10:无迹卡尔曼滤波(UKF)FinelyYang2 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践hhhjhl2 小时前
Yup 跨端三方库仓颉适配全流程用户3126874877202 小时前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测东华果汁哥3 小时前
【Spring AI 实战】从零开始调用大模型接口,构建 Java AI 应用