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
相关推荐
无限的鲜花7 小时前
反射(原创推荐)IT二叔7 小时前
Java项目部署-03-teamcity-cicd-docker镜像流水线方式部署一路向北he8 小时前
字节钢铁军团--“提供情境,而非控制”QiLinkOS8 小时前
第三视觉理解徐玉生与他的商业活动(30)疯狂打码的少年8 小时前
【操作系统】页面置换算法(OPT/FIFO/LRU)超级数据查看器8 小时前
超级数据查看器 v10.0 发布小O的算法实验室8 小时前
2026年CIE,优化客货协同运输:综合地铁系统的列车容量动态分配Coder_Shenshen9 小时前
西门子S7CommPlus协议鉴权算法原理与流程详解折哥的程序人生 · 物流技术专研9 小时前
《Java 100 天进阶之路》第50篇:阻塞队列与并发容器(2026版)ai_coder_ai10 小时前
编写自动化脚本,在自己后端服务中使用Open Api进行设备相关操作