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
相关推荐
图灵学术计算机论文辅导22 分钟前
论文推荐|迁移学习+多模态特征融合threejs源码翻译官1 小时前
显微镜图像处理【优化】- 使用图像风格迁移技术放大图像细节柳贯一(逆流河版)1 小时前
Spring 三级缓存:破解循环依赖的底层密码强德亨上校1 小时前
贪心算法(Greedy Algorithm)详解浮灯Foden2 小时前
算法-每日一题(DAY13)两数之和该用户已不存在3 小时前
OpenJDK、Temurin、GraalVM...到底该装哪个?西工程小巴3 小时前
实践笔记-VSCode与IDE同步问题解决指南;程序总是进入中断服务程序。TT哇3 小时前
@[TOC](计算机是如何⼯作的) JavaEE==网站开发Tina学编程3 小时前
48Days-Day19 | ISBN号,kotori和迷宫,矩阵最长递增路径Moonbit3 小时前
MoonBit Perals Vol.06: MoonBit 与 LLVM 共舞 (上):编译前端实现