Cod sursa(job #883083)

Utilizator RobertSSamoilescu Robert RobertS Data 19 februarie 2013 18:33:33
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
using namespace std;


ifstream fin("algsort.in");
ofstream fout("algsort.out");
#define MAX_N 500000

long n, v[MAX_N];

long position(long i, long j){
    short int mod = 1;
    while(i<j){
        if(v[i] > v[j]){
            swap(v[i],v[j]);
            mod *=(-1);
        }

        if(mod == 1) i++;
        else j--;

    }

    return i;
}

void quick(long li, long ls){
    if(li < ls){
        long lm = position(li, ls);
        quick(li,lm-1);
        quick(lm, ls);
    }
}


int main()
{

    fin >> n;
    for(long i=1; i<=n; i++){
        fin >> v[i];
    }

    quick(1,n);

    for(long i=1; i<=n; i++)
        fout << v[i] << " ";

    return 0;
}