Pagini recente » Cod sursa (job #1634664) | Cod sursa (job #2109182) | Cod sursa (job #2066852) | Cod sursa (job #667783) | Cod sursa (job #614528)
Cod sursa(job #614528)
#include <cstdio>
using namespace std;
int v[500100],w[500100];
void interclaseaza(int a, int b)
{
int i=a, mij=(a+b)/2, j=mij+1, nr=0;
while(i<=mij && j<=b)
{
if (v[i]<v[j])
{
w[++nr]=v[i];
i++;
}
else
{
w[++nr]=v[j];
j++;
}
}
for(;i<=mij;i++)
{
w[++nr]=v[i];
}
for(;j<=b;j++)
{
w[++nr]=v[j];
}
for(i=a;i<=b;++i)
v[i]=w[i-a+1];
}
void sort(int a, int b)
{
int mij;
if(a==b)
return;
mij=(a+b)/2;
sort(a,mij);
sort(mij+1,b);
interclaseaza(a,b);
}
int main()
{
int n, i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
sort(1,n);
for(i=1;i<=n;++i)
printf("%d ",v[i]);
return 0;
}