Pagini recente » Cod sursa (job #3175841) | Cod sursa (job #2820816) | Cod sursa (job #2935244) | Cod sursa (job #431415) | Cod sursa (job #1239771)
#include <iostream>
#include <cstdio>
#define MAXN 500005
using namespace std;
int n, a[MAXN];
void merge_sort(int x[MAXN], int l, int r)
{
if (r-l <= 1)
return;
int mid = (l + r)/2, i, j, k;
merge_sort(x, l, mid);
merge_sort(x, mid, r);
int g[MAXN];
for (i = l, j = mid, k = l; (i<mid || j<r); k++)
if (j>=r || (i<mid && a[i] < a[j]))
g[k] = a[i++];
else
g[k] = a[j++];
for (int i = l; i < r; i++)
x[i] = g[i];
}
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(a, 0, n);
for (int i = 0; i< n; i++)
printf("%d ", a[i]);
return 0;
}