Pagini recente » Cod sursa (job #359740) | Cod sursa (job #1973218) | Cod sursa (job #1277453) | Cod sursa (job #1315980) | Cod sursa (job #1726405)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
#define nmax 500010
#define cout fout
int n;
int v[nmax],aux[nmax];
void qsort(int a,int b)
{
int mid=(a+b)/2;
if(a==b) return;
qsort(a,mid);
qsort(mid+1,b);
int i(a),j(mid+1),x=a-1;
while(i<=mid and j<=b)
{
if(v[i]<=v[j])
{
aux[++x]=v[i];
++i;
}
else
{
aux[++x]=v[j];
++j;
}
}
for(;i<=mid;++i) aux[++x]=v[i];
for(;j<=b;++j) aux[++x]=v[j];
for(i=a;i<=b;++i) v[i]=aux[i];
}
int main()
{
int i;
fin>>n;
for(i=1;i<=n;++i)
fin>>v[i];
qsort(1,n);
for(i=1;i<=n;++i) cout<<v[i]<<' ';
return 0;
}