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
相关推荐
CodeCraft Studio20 小时前
国产化Word处理控件Spire.Doc教程:用Java实现TXT文本与Word互转的完整教程徐子童20 小时前
数据结构---优先级队列(堆)滑水滑成滑头20 小时前
**标题:发散创新:智能交通系统的深度探究与实现**摘要:本文将详细冯诺依曼的锦鲤20 小时前
算法练习:前缀和专题siriuuus20 小时前
Maven 核心概念及生命周期闭着眼睛学算法20 小时前
【双机位A卷】华为OD笔试之【哈希表】双机位A-跳房子I【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解孔明兴汉20 小时前
Cursor MCP 第一章-第一节-MCP协议简介.md信仰_27399324320 小时前
枚举类Enum反编译后效果TDengine (老段)20 小时前
TDengine 数学函数 LOG 用户手册青皮桔21 小时前
Java+OpenCV实现图片切割