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 小时前
【开题答辩过程】以《基于JAVA的校园即时配送系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看じ☆冷颜〃2 小时前
黎曼几何驱动的算法与系统设计:理论、实践与跨领域应用数据大魔方2 小时前
【期货量化实战】日内动量策略:顺势而为的短线交易法(Python源码)POLITE33 小时前
Leetcode 23. 合并 K 个升序链表 (Day 12)楚来客3 小时前
AI基础概念之八:Transformer算法通俗解析Echo_NGC22373 小时前
【神经视频编解码NVC】传统神经视频编解码完全指南:从零读懂 AI 视频压缩的基石会员果汁4 小时前
leetcode-动态规划-买卖股票奋进的芋圆4 小时前
Java 延时任务实现方案详解(适用于 Spring Boot 3)橘颂TA4 小时前
【剑斩OFFER】算法的暴力美学——二进制求和sxlishaobin4 小时前
设计模式之桥接模式