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
相关推荐
mldong1 小时前
"applicant" 契约:退回发起人的闭环设计月华路1 小时前
G1 垃圾回收:脏卡队列、记忆集与并发精化线程机制gugucoding2 小时前
47. 【Java】Java内存模型(JMM)与可见性zww89491113 小时前
校园跑腿系统开发实战指南:从需求分析到上线部署全流程解析Fluxart.ai3 小时前
电商商品图审核怎么自动化?规则引擎、人工复核与发布门禁罗西的思考3 小时前
【Agent OS / AIOS】AOHP 深度解读:当 OS 开始为 Agent 而设计民乐团扒谱机4 小时前
【微实验】组合优化matlab实战(马科维茨投资模型):在收益与风险之间,寻找最优的人生配比名字还没想好☜4 小时前
Java 线上内存泄漏排查实战:jmap 导堆、MAT 找 GC Roots 与四类常见泄漏Nil2084 小时前
leetcode 160相交链表迷途之人不知返5 小时前
算法系列2:滑动窗口