Pagini recente » Cod sursa (job #1833046) | Cod sursa (job #1010802) | Cod sursa (job #1315645) | Cod sursa (job #2104829) | Cod sursa (job #1021689)
#include <stdio.h>
#define NX 500010
int n, a[NX], b[NX];
void merge_sort(int l, int r)
{
int m=(l+r) >> 1, i, j, k;
if(l==r ) return;
merge_sort(l,m);
merge_sort(m+1,r );
for(i=l,j=m+1,k=l;i<= m || j<= r; )
if(j>r || (i <= m && a[i] < a[j]) )
b[k++] = a[i++];
else
a[k++]=a[j++];
for(k=l;k<=r;k++)
a[k]=b[k];
}
int main() {
int i;
freopen( "algsort.in", "r", stdin );
freopen( "algsort.out", "w", stdout );
scanf( "%d", &n );
for(i=1; i<=n; i++ )
scanf( "%d",a+i );
merge_sort(1,n);
for(i=1; i<= n; i++ )
printf( "%d ", a[i] );
return 0;
}