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
相关推荐
和裕10 分钟前
蜂窝板 vs 七层瓦楞重型纸箱:大件工业设备运输性能与成本全对比衡石科技28 分钟前
Data_Agent记忆机制与经验复用衡石分析智能体会话记忆与长期学习技术解析letisgo529 分钟前
JAVA 高级进阶07篇《@Transactional失效的8个场景:代理机制到传播行为》水域安全老周30 分钟前
水趣钓鱼救生衣专利拆解:两级锁紧如何解决落水人衣分离三8441 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法暮雨哀尘1 小时前
Java 基础练习(一):创建类并调用对象Msshu1231 小时前
2~5串锂电快充优选|XSP36 Type‑C升压/升降压快充管理芯片想要入门的程序猿1 小时前
回调函数学习泡海椒2 小时前
动态代理核心原理:JQuick-Java接口规则自动生成机制解析shirsl2 小时前
算法 Day 2 滑动窗口 + 栈 / 单调栈