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
相关推荐
sali-tec29 分钟前
C# 基于OpenCv的视觉工作流-章108-区域筛选Gigavision6 小时前
基于BUAA-MIHR数据集的噪声解耦对比学习算法鹿角片ljp6 小时前
LeetCode 64:最小路径和复盘|二维 DP 与 ACM 模式完整写法彧azz7 小时前
算法设计与分析:贪心与动态规划泡海椒7 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色Beyond_System|系统之外8 小时前
【学编程】Python基础编程题100道(21-60)景熙55239 小时前
15.Java 8 Stream 流入门到实战wno7049 小时前
Spring Security权限控制杨运交10 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想