小旭讲解 基础算法系列 - 归并排序之模板
小旭讲解 基础算法系列 - 归并排序之模板

视频讲解

代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 +10;
int n, a[N], t[N];
void merge_sort(int l, int h) {
    if (l >= h) return;
    int m = l + h >> 1;
    merge_sort(l, m);
    merge_sort(m + 1, h);
    int i = l, j = m + 1, k = -1;
    while (i <= m && j <= h) t[++k] = a[i] < a[j] ? a[i++] : a[j++];
    while (i <= m) t[++k] = a[i++];
    while (j <= h) t[++k] = a[j++];
    for (int i = 0; i <= k; ++i) a[l + i] = t[i];
}
int main() {
    cin >> n;
    for (int i = 0; i < n; ++i) cin >> a[i];
    merge_sort(0, n - 1);
    for (int i = 0; i < n; ++i) cout << a[i] << " ";
    return 0;
}
欢迎分享,引用。若转载,请联系我,谢谢配合。
本文地址:https://qoogle.top/xiaoxu-tutorial-bas-merge-sort-template/
最后修改日期:2020年11月18日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。