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
相关推荐
RainbowSea6 小时前
12. LangChain4j + 向量数据库操作详细说明RainbowSea6 小时前
11. LangChain4j + Tools(Function Calling)的使用详细说明考虑考虑10 小时前
Jpa使用union all用户37215742613510 小时前
Java 实现 Excel 与 TXT 文本高效互转浮游本尊11 小时前
Java学习第22天 - 云原生与容器化聚客AI12 小时前
🙋♀️Transformer训练与推理全流程:从输入处理到输出生成渣哥13 小时前
原来 Java 里线程安全集合有这么多种间彧13 小时前
Spring Boot集成Spring Security完整指南间彧13 小时前
Spring Secutiy基本原理及工作流程Java水解14 小时前
JAVA经典面试题附答案(持续更新版)