Cod sursa(job #1446886)

Utilizator claudiu.gatinaFMI Claudiu Gatina claudiu.gatina Data 3 iunie 2015 07:02:02
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
#define Nmax 500010

using namespace std;

fstream f("algsort.in", ios::in);
fstream g("algsort.out", ios::out);

int v[Nmax];
int n;

void quicksort(int st, int dr)
{
    if(st >= dr)
        return;
    int i = st - 1;
    int j = st;
    int x = v[dr];
    while(j < dr)
    {
        if(v[j] < x)
        {
            i++;
            int aux = v[i];
            v[i] = v[j];
            v[j] = aux;
        }
        j++;
    }
    v[dr] = v[i + 1];
    v[i + 1] = x;

    quicksort(st, i);
    quicksort(i + 2, dr);
}

int main()
{
    f>>n;
    for(int i = 0; i < n; ++i)
        f>>v[i];
    quicksort(0, n - 1);
    for(int i = 0; i < n; ++i)
        g<<v[i]<<' ';
    return 0;
}