Pagini recente » Cod sursa (job #1258274) | Cod sursa (job #616746) | Cod sursa (job #929020) | Cod sursa (job #2280218) | Cod sursa (job #884003)
Cod sursa(job #884003)
#include<stdio.h>
int k[500001],v[500001],t,i,n;
void ms(int s,int d)
{
int i1,i2,M,t;
if(s==d)
return ;
else
{
int M=(s+d)/2;
ms(s,M);
ms(M+1,d);
t=0;
for(i1=s,i2=M+1;i1<=M&&i2<=d;)
{
if(v[i1]<v[i2])
k[++t]=v[i1++];
else
k[++t]=v[i2++];
}
for(;i1<=M;i1++)
k[++t]=v[i1];
for(;i2<=d;i2++)
k[++t]=v[i2];
for(int i=s,t=1;i<=d;++i,++t)
v[i]=k[t];
}
}
int main ()
{
freopen ("algsort.in","r",stdin);
freopen ("algsort.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",&v[i]);
ms(1,n);
for(i=1;i<=n;++i)
printf("%d ",v[i]);
return 0;
}