Cod sursa(job #757983)

Utilizator angelicheartMicu Ana angelicheart Data 14 iunie 2012 00:12:15
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#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;
}