Pagini recente » Cod sursa (job #2852973) | Cod sursa (job #757481) | Cod sursa (job #2215564) | Cod sursa (job #1979277) | Cod sursa (job #1356651)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500010;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, a[MAXN], b[MAXN];
void mergeSort(int l, int r)
{
if (l == r) return;
int m = (l + r) >> 1, i, j, k;
mergeSort(l, m);
mergeSort(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()
{
fin >> n;
for (int i = 1; i <= n; ++i) fin >> a[i];
mergeSort(1, n);
for (int i = 1; i <= n; ++i) fout << a[i] << " ";
return 0;
}