Cod sursa(job #778824)

Utilizator TheNechizFMI Razvan Birisan TheNechiz Data 15 august 2012 21:35:57
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
# include <fstream>
# define dim 500005

using namespace std;

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

int v[dim];

void Qsort( int v[] , int st , int dr ){

    int mij,min,max,temp;

    min = st;
    max = dr;

    mij = v[ st + (dr-st) / 2 ];

    do{
        for(; v[min] < mij ; ++min );
        for(; v[max] > mij ; --max );
        if( min <= max ){

            temp = v[min];
            v[min++] = v[max];
            v[max--] = temp;
        }
    }while( min <= max);

    if( st < max ) Qsort(v,st,max);
    if( dr > min ) Qsort(v,min,dr);

}

int main(){

    int n,i;

    in >> n;
    for( i = 0 ; i < n ; ++i )
        in >> v[i];

    Qsort(v,0,n-1);

    for( i = 0 ; i < n ; ++i )
        out << v[i] << " ";

    in.close();
    out.close();

    return 0;
}