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
相关推荐
随遇而安zx11 分钟前
【多线程】---ConcurrentHashMap 源码解析luj_176815 分钟前
一线一区一变破解人盯人防守密码不才不才不不才18 分钟前
Spring 源码系列(27): @Transactional 七大失效场景与源码归因随遇而安zx21 分钟前
【多线程】---线程池 ThreadPoolExecutor 原理与调优抠脚小弟24 分钟前
WebSocketServer 使用详解:从入门到实战随便做点啥29 分钟前
32卡64G-910B4-16后端集群部署报告Wang's Blog38 分钟前
Java框架快速入门: Spring Security+OAuth2之字段验证与自定义验证注解实战CodeStats38 分钟前
【Java 类加载器】Java 类加载器完整体系深度拆解(上):从 JVM 启动到双亲委派模型带多刺的玫瑰43 分钟前
Leecode#29刷题之两数相除smj2302_796826521 小时前
解决leetcode第4017题数组中的峰值II