Cod sursa(job #999408)

Utilizator lucianRRuscanu Lucian lucianR Data 20 septembrie 2013 10:43:37
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <cassert>

using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");

int v[100], n, c=1;

void sort(int lo, int hi, int x[])
{
    if (lo >= hi) return;

    int mid = (lo + hi) / 2;
    sort(lo, mid, x);
    sort(mid + 1, hi, x);

    int i = lo, j = mid + 1;
    c = lo;
    while(i <= mid || j <= hi)
    {
        if ((i <= mid && v[i] <= v[j]) || j > hi)
        {
            x[c] = v[i];
            i++;
        }
        else
        {
            x[c] = v[j];
            j++;
        }
        c++;
    }

    for(int i = lo; i <= hi; i++)
    {
        v[i] = x[i];
    }
}

int main()
{
    int x[100];
    in >> n;
    for(int i = 1; i <= n; i++)
        in >> v[i];

    sort(1, n, x);

    for(int i = 1; i <= n; i++)
        out  << v[i] << " ";
    return 0;
}