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
相关推荐
希望永不加班9 小时前
SpringBoot 中 AOP 实现权限校验(角色/权限)桌面运维家9 小时前
IDV云桌面vDisk机房部署方案模板特性解析CS_Zero9 小时前
无人机路径规划算法——EGO-planner建模总结—— EGO-planner 论文笔记(一)杰梵9 小时前
聚酯切片DSC热分析应用报告@BangBang9 小时前
leetcode (4): 连通域/岛屿问题哈密瓜刨冰9 小时前
深入浅出 SpringMVC:核心注解全解析与实战用法Ulyanov10 小时前
像素迷宫:路径规划算法的可视化与实战Mr_pyx10 小时前
【LeetCode Hot 100】 除自身以外数组的乘积(238题)多解法详解Trouvaille ~10 小时前
零基础入门 LangChain 与 LangGraph(五):核心组件上篇——消息、提示词模板、少样本与输出解析MOON404☾10 小时前
Chapter 002. 线性回归