Pagini recente » Cod sursa (job #1126421) | Cod sursa (job #3219440) | Cod sursa (job #1769059) | Cod sursa (job #1325569) | Cod sursa (job #367616)
Cod sursa(job #367616)
#include <stdio.h>
#define MAXN 500005
int a[MAXN],b[MAXN];
void mergesort(int l,int r)
{
int m = (l + r) / 2,i,j,k;
if (l == r)
{
return;
}
mergesort(l,m);
mergesort(m+1,r);
for ( i = l,k = l, j = m + 1; i<=m || j<=r;)
{
if ( j > r || ( i<=m && a[i] < a[j] ))
{
b[k++] = a[i++];
}
else
{
b[k++] = a[j++];
}
}
for (k = l; k <= r; k++) a[k] = b[k];
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
int i,n;
scanf("%d",&n);
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
mergesort(1,n);
for (i=1;i<=n;i++)
{
printf("%d ",b[i]);
}
return 0;
}