Cod sursa(job #2279530)

Utilizator catu_bogdan_99Catu Bogdan catu_bogdan_99 Data 9 noiembrie 2018 17:39:58
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <random>
#include <algorithm>
using namespace std;

#define NMAX 500001
int V[ NMAX ];

void quick_sort( int low, int high ) {

    if ( low >= high ) return ;

    int i, j, p;
    i = low; j = high;
    p = V[ i + rand() % ( high - low + 1 ) ];

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

    quick_sort( low, j );
    quick_sort( i, high );

}

int main () {

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

    int n, i;

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

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

    return 0;
}