归并排序(递归实现)

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];
    }
}

相关推荐

  1. 归并排序(实现)

    2024-07-15 05:04:05       25 阅读
  2. 快速排序归并排序实现

    2024-07-15 05:04:05       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 05:04:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 05:04:05       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 05:04:05       58 阅读
  4. Python语言-面向对象

    2024-07-15 05:04:05       69 阅读

热门阅读

  1. SpinalHDL之VHDL 和 Verilog 生成

    2024-07-15 05:04:05       24 阅读
  2. 等保测评助力网络安全治理现代化

    2024-07-15 05:04:05       19 阅读
  3. 去中心化预言机是什么

    2024-07-15 05:04:05       31 阅读
  4. Electron 进程间通信

    2024-07-15 05:04:05       25 阅读
  5. Windows 快捷键汇总

    2024-07-15 05:04:05       29 阅读
  6. HTTP 协议格式与 Fiddler 工具的用法

    2024-07-15 05:04:05       25 阅读
  7. 深入解析PHP框架:Symfony框架详解与应用

    2024-07-15 05:04:05       22 阅读
  8. UniApp:跨平台移动应用开发的终极指南

    2024-07-15 05:04:05       25 阅读
  9. LeetCode 算法:子集 c++

    2024-07-15 05:04:05       21 阅读