Pagini recente » Cod sursa (job #3222617) | Cod sursa (job #700897) | Cod sursa (job #1855993) | Cod sursa (job #2095681) | Cod sursa (job #2274880)
#include <cstdio>
#include <iostream>
using namespace std;
#define NMAX 500001
void quick_sort( int *V, int st, int dr ) {
if ( st >= dr ) return ;
int i, j, piv;
i = st; j = dr - 1; piv = dr;
swap( V[ ( st + dr ) / 2 ], V[ dr ] );
while ( i <= j ) {
while ( V[ i ] < V[ piv ] ) i++;
while ( V[ j ] >= V[ piv ] ) j--;
if ( i < j ) {
swap( V[ i ], V[ j ] );
i++;
j--;
}
}
swap( V[ i ], V[ piv ] );
quick_sort( V, st, i - 1 );
quick_sort( V, i + 1, dr );
}
int main () {
freopen( "algsort.in", "r", stdin );
freopen( "algsort.out", "w", stdout );
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;
}