【模板】归并排序

来源:互联网 发布:网络管理结构的重要性 编辑:程序博客网 时间:2024/06/06 10:39
#include <cstdio>using namespace std;#define maxn 50006int a[maxn];int n,s;int merge(int l,int m,int r){    int t[n],p=0,i=l,j=m+1;    while (i<=m && j<=r)        if (a[i]>a[j])            t[++p]=a[j++];        else            t[++p]=a[i++];    while (i<=m)        t[++p]=a[i++];    while (j<=r)        t[++p]=a[j++];    for (int k=l;k<=r;k++)        a[k]=t[k-l+1];    return 0;}int mergesort(int l,int r){    int m=(l+r) / 2;    if (l>=r)        return 0;    mergesort(l,m);    mergesort(m+1,r);    merge(l,m,r);}int main(){    scanf("%d",&n);    for (int i=1;i<=n;i++)        scanf("%d",&a[i]);    mergesort(1,n);    for (int i=1;i<=n;i++)        printf("%d ",a[i]);    return 0;}

这里写图片描述
Pixiv ID:61372077