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
相关推荐
2601_9498177241 分钟前
C++指针与引用深度精讲:底层原理、差异对比与高阶实战陷阱va学弟1 小时前
Java 网络通信编程(10):Channel 和 Selector小张小张爱学习1 小时前
Apache Dubbo 3 + Spring Boot 3 多模块 Maven 项目,演示基于 Zookeeper 注册中心的 RPC 调用Keven_111 小时前
算法札记:如何卡SPFA可编程芯片开发2 小时前
基于电压电流双闭环控制的三相整流器系统simulink建模与仿真可编程芯片开发2 小时前
基于ADRC自抗扰算法的UAV飞行姿态控制系统simulink建模与仿真学究天人2 小时前
数学公理体系大全:第七章 连续统假设与力迫法简介阿pin2 小时前
Java随笔-ConcurrentHashMapKeven_112 小时前
算法札记:SPFA什么时候用队列什么时候用栈:-)2 小时前
基础算法-选择排序