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
相关推荐
xiaoqiMikko2 分钟前
Spring Cloud Config 这个 CVE 的补丁,Maven Central 上根本没有残月心殇 请珍惜枸8 分钟前
.NET陷阱之五:奇怪的OutOfMemoryException——大对象堆引起的问题与对策用户3126874877208 分钟前
Spring Boot 配置体系到底怎么加载的?从 application.yml 到 @Conditional 的全链路拆解Bonnie_121514 分钟前
08-JUC并发基础-AQS-补充共享锁Zane199417 分钟前
线程池入门:7 大核心参数与 4 种拒绝策略Zldaisy3d22 分钟前
连续纤维增材制造的机翼已飞上天,复材打印在低空飞行器上还需翻过几道坎?CoderYanger26 分钟前
Java EE:9.JVM(课件内容-下篇)我命由我1234531 分钟前
Kotlin 面向对象 - Kotlin 类变量与类方法SimonKing33 分钟前
开源免费+AI运维,Netcatty快速上手教程plainGeekDev40 分钟前
Robolectric → 分层测试:测试策略重构