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
相关推荐
wuminyu2 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析小蒋学算法2 小时前
算法-交替删除操作后最后剩下的整数-跟着灵茶山艾府学算法荆棘鸟智能3 小时前
林业遥感长势评估怎么做?从NDVI时序分析到LiDAR蓄积量回归hhb_6183 小时前
AIRAGDebug:一键定位RAG链路异常朝朝辞暮i4 小时前
C++ 第 6 课:switch —— 多状态选择苏打豆4 小时前
Pinocchio源码阅读——刚体运动物理量空间变换及求导蜗牛互联网5 小时前
WSL Containers GA:本地AI容器的生命周期、网络与治理验收FluxArt5 小时前
GPT Image 2.5 中文提示词教程:Flux Art 可复用模板思麟呀5 小时前
位运算:从一个整数到一个集合龙亘川5 小时前
铭记英烈守初心,数字强基促服务:亘川智城退役军人服务系统的实践与价值