Cod sursa(job #966676)

Utilizator AlexandruValeanuAlexandru Valeanu AlexandruValeanu Data 26 iunie 2013 13:58:24
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

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

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

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

            i++;
            j--;
        }

    }while( i < j );

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

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

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

    int n;
    int v[500005];

    f >> n;

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

    qsort( v, 1, n );

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

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