归并排序模板

来源:互联网 发布:如何清洗内衣知乎 编辑:程序博客网 时间:2024/05/18 00:38
#include<cstdio>#include<iostream>#include<cstring>#include<set>#include<map>#include<queue>#include<vector>#include<cstdlib>#include<algorithm>using namespace std;int n,a[1100000],tmp[1100000];void sort(int l,int r){    if(l==r) return;    int mid=(l+r)>>1;    sort(l,mid);    sort(mid+1,r);    int t1=l,t2=mid+1,tot=l;    for(;tot<=r;){        if((a[t1]<=a[t2]&&t1<=mid)||t2>r) tmp[tot++]=a[t1++];        else if(t1>mid||(a[t2]<a[t1]&&t2<=r))tmp[tot++]=a[t2++];    }    for(int i=l;i<=r;i++) a[i]=tmp[i];}int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++) scanf("%d",&a[i]);    sort(1,n);    for(int i=1;i<=n;i++) printf("%d ",a[i]);} 
原创粉丝点击