Pagini recente » Cod sursa (job #1952464) | Istoria paginii runda/baraj2_cnshb/clasament | Cod sursa (job #2493543) | Rating Romanescu Stefan George (AlucardSama04) | Cod sursa (job #757983)
Cod sursa(job #757983)
#include <fstream>
using namespace std;
const int N = 500005;
int v[N], aux[N], n;
ifstream in("algsort.in");
ofstream out("algsort.out");
void merge(int st, int dr)
{
if (st == dr)
return;
int m = st + dr >> 1;
merge(st, m);
merge(m + 1, dr);
for (int i = st, j = m + 1, k = st ; k <= dr ; k++)
if (j > dr || i <= m && v[i] <= v[j])
aux[k] = v[i++];
else
aux[k] = v[j++];
for (int i = st ; i <= dr ; i++)
v[i] = aux[i];
}
int main()
{
in >> n;
for (int i = 1 ; i <= n ; i++)
in >> v[i];
merge(1, n);
for (int i = 1 ; i <= n ; i++)
out << v[i] << " ";
out << "\n";
return 0;
}