Pagini recente » Cod sursa (job #1510951) | Cod sursa (job #1974560) | Cod sursa (job #1787591) | Cod sursa (job #1962372) | Cod sursa (job #1021690)
#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
b[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;
}