Pagini recente » Cod sursa (job #2766809) | Cod sursa (job #3172639) | Cod sursa (job #1046343) | Cod sursa (job #866855) | Cod sursa (job #1243095)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500005;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N, A[MAXN], B[MAXN];
void MergeSort(int l, int r)
{
int m = (l + r) >> 1, i, j, k;
if (l == r) return;
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] << " ";
fin.close();
fout.close();
return 0;
}