算法 归并排序

来源:互联网 发布:cad看图软件 编辑:程序博客网 时间:2024/06/11 02:34

还有点瑕疵

 #include<iostream>using namespace std;int a[20];int b[20];void Merge(int a[],int b[],int i,int m,int n){    int j;    int k;    for(j=m+1,k=i;i<=m&&j<=n;++k)    {        if(a[i]>a[j])            b[k]=a[j++];        else            b[k]=a[i++];    }    while(i<=m)    {        b[k++]=a[i++];    }    while(j<=n)    {        b[k++]=a[j++];     }    for(i=0;i<n;i++)        cout<<b[i]<<' ';    cout<<endl;}void Msort(int a[],int b[],int s,int t){    int m;    int i,j;    if(s==t)        b[s]=a[s];    else    {        m=(s+t)/2;        Msort(a,b,s,m);        Msort(a,b,m+1,t);        Merge(a,b,s,m,t);    }}int main(){    int n;    int i;    cin>>n;    for(i=0;i<n;i++)        cin>>a[i];    Msort(a,b,0,n-1);    for(i=0;i<n;i++)        cout<<b[i]<<' ';    cout<<endl;}


0 0
原创粉丝点击