归并排序

来源:互联网 发布:华康字体淘宝可以用吗 编辑:程序博客网 时间:2024/09/21 06:22
#include<iostream>using namespace std;int n;int a[101];int b[101];void merge(int *a,int *b,int start,int end){    if(start>=end)        return ;    int len=end-start;    int mid=len/2+start;    int start1=start;    int end1=mid;    int start2=mid+1;    int end2=end;    merge(a,b,start1,end1);    merge(a,b,start2,end2);    int k=start;    while(start1<=end1&&start2<=end2)    {        if(a[start1]<=a[start2])           b[k++]=a[start1++];        else           b[k++]=a[start2++];    }        while(start1<=end1)        {            b[k++]=a[start1++];        }        while(start2<=end2)        {            b[k++]=a[start2++];        }        for(int i=start;i<=end;i++)            a[i]=b[i];}int main(){    while(cin>>n)    {        for(int i=1;i<=n;i++)            cin>>a[i];            merge(a,b,1,n);        for(int i=1;i<=n;i++)            cout<<a[i]<<" ";        cout<<endl;    }    return 0;}

原创粉丝点击