Cod sursa(job #879213)

Utilizator TheNechizFMI Razvan Birisan TheNechiz Data 15 februarie 2013 08:44:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
# include <fstream>
# define dim 500003
using namespace std;

int v[dim],n;
void sortare( int p,int u )
{
    int man,m,i,j;
    m=v[(p+u)/2]; // p+(u-p)/2
    i=p;
    j=u;
    do
    {
        while( v[i] < m ) i++;
        while( v[j] > m ) j--;
        if( i <= j ){
            man=v[i];
            v[i]=v[j];
            v[j] = man;
            i++;
            j--;
        }
    }while( i <= j);
    if( p < j ) sortare(p,j);
    if( u > i ) sortare(i,u);
}

main()
{
    ifstream in("algsort.in");
    ofstream out("algsort.out");
    in >> n;
    for( int i = 0 ; i < n ; ++i )
        in >> v[i];
    sortare(0,n-1);
    for( int i = 0 ; i < n ; ++i )
        out << v[i] << ' ';
    in.close();
    out.close();
}