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
相关推荐
鹿角片ljp9 分钟前
力扣140.快慢指针法求解链表倒数第K个节点qq_124987075316 分钟前
基于SpringBoot学生学习历史的选课推荐系统的设计与实现(源码+论文+部署+安装)自由生长202427 分钟前
位运算第1篇-异或运算-快速找出重复数字廋到被风吹走38 分钟前
【Spring】事务管理深度解析|从原理到实战xxxxxmy1 小时前
同向双指针(滑动窗口)释怀°Believe1 小时前
Daily算法刷题【面试经典150题-5️⃣图】List<String> error_P1 小时前
数据结构:链表-单向链表篇ss2731 小时前
ConcurrentHashMap:扩容机制与size()方法lkbhua莱克瓦241 小时前
Java进阶——IO流韩立学长1 小时前
【开题答辩实录分享】以《自选便利店商品分类管理系统》为例进行选题答辩实录分享