Cod sursa(job #1513400)

Utilizator tudorgalatanRoman Tudor tudorgalatan Data 29 octombrie 2015 14:25:16
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
// Tudor Galatan, Vatra Dornei

#include <fstream>

using namespace std;

ifstream inf ("algsort.in");
ofstream outf ("algsort.out");

int v[500001];
int n;
int i;

void solve (int v[], int left, int right)
{
    int i, j;
    i = left;
    j = right;
    int tmp, pivot;
    pivot = v[(left+right)/2];
    while (i <= j)
    {
        while (v[i] < pivot)
            i++;
        while (v[j] > pivot)
            j--;
        if (i <= j)
        {
            tmp = v[i];
            v[i] = v[j];
            v[j] = tmp;
            i++;
            j--;
        }
    }
    if (left < j)
        solve(v, left, j);
    if (right > i)
        solve(v, i, right);
}

int main ()
{
    inf >> n;
    for (i=1; i<=n; i++)
        inf >> v[i];
    solve (v, 1, n);
    for (i=1; i<n; i++)
        outf << v[i] << " ";
    outf << v[n];
    return 0;
}