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
相关推荐
AaronJonah16 分钟前
企业级线程池 traceId 闭环:上下文传递与全链路追踪实战程序员黑豆32 分钟前
Java入门第一步:从零开始编写你的第一个Hello World程序可编程芯片开发39 分钟前
基于双PI控制器结构的六步逆变器供电无刷直流电机调速simulink仿真Sagittarius_A*1 小时前
后量子密码|通识认知 02|量子威胁核心原理:Shor 算法如何击穿传统公钥密码Jazz_z1 小时前
如何用Python将彩色PDF一键转为黑白(灰度)青山木1 小时前
Hot 100 --- 在排序数组中查找元素的第一个和最后一个位置其美杰布-富贵-李1 小时前
聚类算法详解:K-means、层次聚类与 DBSCAN天空之外1361 小时前
Docker安装MySQL 8.4 LTS、Docker安装Redis 7.4.x、Docker安装MinIOfīɡЙtīиɡ ℡2 小时前
深入学习JAVA并发编程(上)碧海银沙音频科技研究院2 小时前
4 BES2710编译环境搭建方法