归并排序
Posted jzxnl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归并排序相关的知识,希望对你有一定的参考价值。
#include<iostream> #include<cstring> #define N 500+10 using namespace std; int a[N],s[N],n; void gb(int l,int r) if(l==r)return; int m=(l+r)/2,tot=l-1,i=l,j=m+1; gb(l,m);gb(m+1,r); while(i<=m&&j<=r) if(a[i]>a[j])s[++tot]=a[j],j++; else s[++tot]=a[i],i++; while(i<=m)s[++tot]=a[i],i++; while(j<=r)s[++tot]=a[j],j++; for(int i=l;i<=r;i++) a[i]=s[i]; return; int main() cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; gb(1,n); for(int i=1;i<=n;i++)cout<<a[i]<<" "; cout<<endl; return 0;
以上是关于归并排序的主要内容,如果未能解决你的问题,请参考以下文章