Cod sursa(job #1020805)

Utilizator TheNechizFMI Razvan Birisan TheNechiz Data 2 noiembrie 2013 17:42:24
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
# include <fstream>
# define maxn 500003
using namespace std;

int N,v[maxn];

void Citire()
{
    ifstream in("algsort.in");
    in >> N;
    for( int i = 0 ; i < N ; ++i )
        in >> v[i];
    in.close();
}

void q_sort( 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 ) q_sort(st,max);
    if( dr > min ) q_sort(min,dr);

}

void Tipar()
{
    ofstream out("algsort.out");
    for( int i = 0 ; i < N ; ++i )
        out << v[i] << ' ';
    out.close();
}

int main()
{
    Citire();
    q_sort(0,N-1);
    Tipar();
}