Cod sursa(job #2274864)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 2 noiembrie 2018 16:48:33
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.9 kb
#include <cstdio>
#include <iostream>
using namespace std;

#define NMAX 500001

void quick_sort( int *V, int st, int dr ) {

    if ( st >= dr ) return ;

    printf( "%d %d\n", st, dr );

    int i, j, piv;

    i = st; j = dr - 1; piv = dr;

    while ( i <= j ) {
        while ( V[ i ] < V[ piv ] ) i++;
        while ( V[ j ] >= V[ piv ] ) j--;
        if ( i <= j ) {
            swap( V[ i ], V[ j ] );
        }
    }

    swap( V[ i ], V[ piv ] );

    quick_sort( V, st, piv - 1 );
    quick_sort( V, piv + 1, dr );


}

int main () {

    freopen( "algsort.in", "r", stdin );
    freopen( "algsort.out", "w", stdin );

    int n, i;
    int V[ NMAX ] = { 0 };

    scanf( "%d", &n );
    for ( i = 1; i <= n; ++i ) {
        scanf( "%d", &V[ i ] );
    }

    quick_sort( V, 1, n );

    for ( i = 1; i <= n; ++i ) printf( "%d ", V[ i ] );


    return 0;

}