算法通关村第十关|黄金挑战|归并排序

归并排序:先将大的序列分为若干个小的序列,得到答案后再将答案合并,递归深度为 log n 。

实现:

java 复制代码
public void mergeSort(int[] array, int start, int end, int temp[]) {
	if (start >= end) {
        return;
    }
    mergeSort(array, start, (start + end) / 2, temp);
    mergeSort(array, (start + end) / 2 + 1, end, temp);
    merge(array, start, end, temp);
}
public void merge(int[] array, int start, int end, int[] temp) {
	int middle = (start + end) / 2;
    int left = start;
    int right = middle + 1;
    int index = left;
    while (left <= middle && right <= end) {
        if (array[left] < array[right]) {
            temp[index++] = array[left++];
        } else {
            temp[index++] = array[right++];
        }
    }
    while (left <= middle) {
        temp[index++] = array[left++];
    }
    while (right <= end) {
        temp[index++] = array[right++];
    }
    for (int i = start; i <= end; i++) {
        array[i] = temp[i];
    }
}

如果对您有帮助,请点赞关注支持我,谢谢!❤

如有错误或者不足之处,敬请指正!❤

个人主页:星不易

算法通关村专栏:不易|算法通关村

相关推荐
扎克begod几秒前
JAVA并发编程系列(9)CyclicBarrier循环屏障原理分析
java·开发语言·python
青灯文案12 分钟前
SpringBoot 项目统一 API 响应结果封装示例
java·spring boot·后端
自身就是太阳3 分钟前
2024蓝桥杯省B好题分析
算法·职场和发展·蓝桥杯
我就是程序猿12 分钟前
tomcat的配置
java·tomcat
阳光阿盖尔18 分钟前
EasyExcel的基本使用——Java导入Excel数据
java·开发语言·excel
二十雨辰19 分钟前
[苍穹外卖]-12Apache POI入门与实战
java·spring boot·mybatis
程序员皮皮林19 分钟前
开源PDF工具 Apache PDFBox 认识及使用(知识点+案例)
java·pdf·开源·apache
蔚一20 分钟前
Java设计模式—面向对象设计原则(三) -----> 依赖倒转原则DIP(完整详解,附有代码+案例)
java·开发语言·设计模式·intellij-idea·依赖倒置原则
liang899925 分钟前
SpringSecurity原理解析(七):权限校验流程
java·开发语言
孙小二写代码27 分钟前
[leetcode刷题]面试经典150题之1合并两个有序数组(简单)
算法·leetcode·面试