Pagini recente » Cod sursa (job #25258) | Cod sursa (job #767516) | Cod sursa (job #1256344) | Rating stefan capatina (Stefan0_0) | Cod sursa (job #1742508)
#include <stdio.h>
#define NX 500010
int N, A[NX], B[NX];
void merge_sort(int l, int r) {
int m = (l + r) / 2, i, j, k;
if (l == r)
return;
merge_sort(l, m);
merge_sort(m + 1, r);
i = l;
j = m + 1;
k = l;
while (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;
}