归并排序模板
发布日期:2021-05-11 00:31:11 浏览次数:10 分类:精选文章

本文共 1859 字,大约阅读时间需要 6 分钟。

���������������������������������������������������������������������������������������������������������������������������������������

  • ������������������������������������������������������
  • ���������������������������������������������������������������������������������������������
  • ���������������������������������������������������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������
  • ��������������������������������� O(n log n)��������������������� O(n)������������������������������������������

    #include 
    using namespace std;const int maxn = 1e5 + 10;int q[maxn], tmp[maxn];void merge_sort(int q[], int l, int r) { if (l >= r) { return; } int mid = l + (r - l) / 2; merge_sort(q, l, mid); merge_sort(q, mid + 1, r); int k = 0; int i = l, j = mid + 1; while (i <= mid && j <= r) { if (q[i] < q[j]) { tmp[k++] = q[i]; i++; } else { tmp[k++] = q[j]; j++; } } while (i <= mid) { tmp[k++] = q[i]; i++; } while (j <= r) { tmp[k++] = q[j]; j++; } for (int i = l, j = 0; i <= r; i++, j++) { q[i] = tmp[j]; }}int main() { int n; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &q[i]); } merge_sort(q, 0, n-1); for (int i = 0; i < n; i++) { if (i > 0) { printf(" "); } printf("%d", q[i]); } return 0;}

    ������������������������

    531 2 4 5

    ���������������

    1 2 3 4 5

    ���������������������������������������������������������������n���������������������������������������������������������������������������������������������������������������O(n)���������������������O(n log n)���������������������������������������

    上一篇:二叉搜索树(C语言实现)
    下一篇:快速排序模板

    发表评论

    最新留言

    路过,博主的博客真漂亮。。
    [***.116.15.85]2025年04月17日 23时00分38秒