Pagini recente » Cod sursa (job #465911) | Cod sursa (job #1807562) | Cod sursa (job #840365) | Cod sursa (job #1476250) | Cod sursa (job #601205)
Cod sursa(job #601205)
#include <cstdio>
int n, A[500001], B[500001];
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()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(int i=0;i<n;++i) scanf("%d",&A[i]);
merge_sort(0,n-1);
for(int i=0;i<n;++i) printf("%d ", A[i]);
return 0;
}