Cod sursa(job #966681)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 26 iunie 2013 14:03:07
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>

using namespace std;

int n;
int a[500005];

void qsort( int l, int r )
{
    int i = l, j = r, p = a[ ( l + r ) / 2 ];

    do
    {
        while ( a[i] < p )
                i++;

        while ( a[j] > p )
                j--;

        if ( i <= j )
        {
            swap( a[i], a[j] );

            i++;
            j--;
        }

    }while( i < j );

    if( i < r )
        qsort( i, r );

    if( j > l )
        qsort( l, j );
}

int main()
{
    ifstream f("algsort.in");
    ofstream g("algsort.out");

    f >> n;

    for ( int i = 1; i <= n; i++ )
            f >> a[i];

    qsort( 1, n );

    for ( int i = 1; i <= n; i++ )
        g << a[i] << " ";

    f.close();
    g.close();
}