Pagini recente » Cod sursa (job #1080199) | Cod sursa (job #3167604) | Cod sursa (job #3246991) | Cod sursa (job #2958667) | Cod sursa (job #2677016)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMAX = 500005;
int n, v[NMAX], r[NMAX];
void MergeSort(int st, int dr)
{
if (st >= dr)
return;
else
{
int mid = (st + dr) / 2;
MergeSort(st, mid), MergeSort(mid + 1, dr);
int x = st, y = mid + 1, i = 0;
while (x <= mid && y <= dr)
{
if (v[x] <= v[y])
r[++i] = v[x++];
else
r[++i] = v[y++];
}
while (x <= mid)
r[++i] = v[x++];
while (y <= dr)
r[++i] = v[y++];
for (i = st; i <= dr; ++i)
v[i] = r[i - st + 1];
}
}
int main()
{
ios::sync_with_stdio(false);
fin.tie(0);
fin >> n;
for (int i = 1; i <= n; ++i)
fin >> v[i];
MergeSort(1, n);
for (int i = 1; i <= n; ++i)
fout << v[i] << " ";
return 0;
}