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

归并排序:先将大的序列分为若干个小的序列,得到答案后再将答案合并,递归深度为 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];
    }
}

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

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

个人主页:星不易

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

相关推荐
Reart6 小时前
Leetcode 714.买卖股票的最佳时机含手续费(719)
后端·算法
CoderYanger6 小时前
A.每日一题:3020. 子集中元素的最大数量
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
Jayden_Ruan7 小时前
C++组合的输出
c++·算法·深度优先
wear工程师7 小时前
CompletableFuture 的 allOf 到底怎么收结果?面试别只说并行
java·后端
倒流时光三十年7 小时前
Logback 系列(3):三大核心组件 Logger / Appender / Encoder
java·开发语言·logback
什巳7 小时前
JAVA练习312- 二叉搜索树中第 K 小的元素
java·数据结构·算法·leetcode
froyoisle7 小时前
CSP 真题解析:[CSP-J 2020-T3] 表达式
c++·算法·csp·信息学·信奥赛
geats人山人海7 小时前
算法好题 2026.7.18
算法
文祐8 小时前
C++类之虚函数表没有虚继承的菱形继承
开发语言·c++·算法
Lumos1868 小时前
51单片机从零到实战(8)——串口通信
算法