#include <iostream>
#define max 1000
using namespace std;
class name
{
private:
int q;
public:
void merge(int b[],int p,int r);
};
void name::merge(int b[],int p,int r)
{
if(p<r)
{
q=(p+r)/2;
merge(b,p,q);
merge(b,q+1,r);
msort(b,p,q,r);
}
}
}
void msort(int b[],int p,int q,int r)
{
int n1,n2,s,v,j;
int L[max];
int R[max];
n1=p-q+1;
n2=r-q;
for(int i=1;i<=n1;i++)
L[i]=b[i+p-1];
for(int j=1;j<=n2;j++)
R[j]=b[q+j];
s=1;
v=1;
for(int k=p;k<=r;k++)
{
if(L[s]<=R[v])
{
b[k]=L[s];
s=s+1;
}
else
{
b[k]=R[v];
v=v+1;
}
}
}
int main()
{
name ob;
int n,t,i;
int b[max];
t=1;
while(cin>>n)
{
for(i=1;i<=n;i++)
{
cin>>b[i];
}
ob.merge(b,t,n);
for(i=1;i<=n;i++)
cout<<b[i];
}
return 0;
}
#define max 1000
using namespace std;
class name
{
private:
int q;
public:
void merge(int b[],int p,int r);
};
void name::merge(int b[],int p,int r)
{
if(p<r)
{
q=(p+r)/2;
merge(b,p,q);
merge(b,q+1,r);
msort(b,p,q,r);
}
}
}
void msort(int b[],int p,int q,int r)
{
int n1,n2,s,v,j;
int L[max];
int R[max];
n1=p-q+1;
n2=r-q;
for(int i=1;i<=n1;i++)
L[i]=b[i+p-1];
for(int j=1;j<=n2;j++)
R[j]=b[q+j];
s=1;
v=1;
for(int k=p;k<=r;k++)
{
if(L[s]<=R[v])
{
b[k]=L[s];
s=s+1;
}
else
{
b[k]=R[v];
v=v+1;
}
}
}
int main()
{
name ob;
int n,t,i;
int b[max];
t=1;
while(cin>>n)
{
for(i=1;i<=n;i++)
{
cin>>b[i];
}
ob.merge(b,t,n);
for(i=1;i<=n;i++)
cout<<b[i];
}
return 0;
}
No comments:
Post a Comment