[模板]归并排序

xiaoxiao2021-02-28  129

一个二分水题 借用了一下百度的图片 代码如下

int n,f[100010],g[100010]; void sort(int l,int r) { if(l==r) rt; int mid=(l+r)>>1; sort(l,mid); sort(mid+1,r); int t1=l,t2=mid+1,t3=l; fr(i,l,r) f[i]=g[i]; while(t1<=mid||t2<=r) if(t1>mid||f[t1]>f[t2]&&t2<=r) { g[t3]=f[t2]; t3++; t2++; } else { g[t3]=f[t1]; t1++; t3++; } } int main(){ n=read(); fr(i,1,n) g[i]=read(); sort(1,n); fr(i,1,n) printf("%d%c",g[i],i==n?'\n':' '); rt 0; }
转载请注明原文地址: https://www.6miu.com/read-49316.html

最新回复(0)