Pagini recente » Cod sursa (job #1325973) | Cod sursa (job #695480) | Cod sursa (job #1642184) | Cod sursa (job #982249) | Cod sursa (job #291741)
Cod sursa(job #291741)
#include<stdio.h>
int n,E;
int v[123],rez[1234];
void merge(int x,int y)
{
if(x<y)
{
int m=(x+y)/2;
merge(x,m);
merge(m+1,y);
int sx = x, sy = m+1;
E=1;
while(sx<=m && sy<=y)
{
if(v[sx]>v[sy])
{
rez[E++]=v[sy];
++sy;
}
else
{
rez[E++]=v[sx];
++sx;
}
}
while(sx<=m)
{
rez[E++]=v[sx];
++sx;
}
while(sy<=y)
{
rez[E++]=v[sy];
sy++;
}
for(int i=1;i<=E-1;++i)
v[x++]=rez[i];
}
}
int main()
{
freopen("b.in","r",stdin);
freopen("b.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&v[i]);
merge(1,n);
for(int i=1;i<=n;++i)
printf("%d ",v[i] );
return 0;
}