Pagini recente » Cod sursa (job #843888) | Cod sursa (job #2577436) | Cod sursa (job #481077) | Cod sursa (job #1783756) | Cod sursa (job #1687786)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMAX = 5e5 + 1;
int n, a[NMAX], b[NMAX];
void mergesort(int lo, int hi) {
int mid = (lo + hi) / 2;
if (lo == hi)
return;
mergesort(lo, mid);
mergesort(mid + 1, hi);
for (int i = lo, j = mid + 1, k = lo; i <= mid || j <= hi; ) {
if (j > hi || (i <= mid && a[i] < a[j]))
b[k++] = a[i++];
else
b[k++] = a[j++];
}
for (int i = lo; i <= hi; ++i)
a[i] = b[i];
}
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;
}