Pagini recente » Cod sursa (job #449426) | Cod sursa (job #993541) | Istoria paginii runda/pre___oji___2018 | Cod sursa (job #1938799) | Cod sursa (job #2716994)
//#include <iostream>
#include <fstream>
using namespace std;
ifstream cin ("algsort.in");
ofstream cout ("algsort.out");
int n,a[500005];
void interclas (int p, int mij, int q)
{
int i,j,k,b[500005];
i=p;
j=mij+1;
k=0;
while(i<=mij && j<=q)
{
if(a[i]<a[j])
{
b[++k]=a[i++];
}
else b[++k]=a[j++];
}
while(i<=mij)
b[++k]=a[i++];
while(j<=q)
b[++k]=a[j++];
int t=1;
for(i=p;i<=q;i++)
{
a[i]=b[t++];
}
}
void divide(int p, int q)
{
int mij=(p+q)/2;
if(p<q)
{
divide(p,mij);
divide(mij+1,q);
interclas(p,mij,q);
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
divide(1,n);
for(int i=1;i<=n;i++)
cout<<a[i]<<' ';
return 0;
}