Pagini recente » Cod sursa (job #1498339) | Cod sursa (job #504066) | Cod sursa (job #717745) | Cod sursa (job #100921) | Cod sursa (job #883988)
Cod sursa(job #883988)
#include<stdio.h>
int k[500100],v[500100],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 ("vectori.in","r",stdin);
freopen ("vectori.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;
}