Pagini recente » Istoria paginii summer-challenge-2009/clasament/runda-3 | Cod sursa (job #2057357) | Cod sursa (job #192944) | Statistici Unibuc Bicsi Badelita Rusu (furoareboys) | Cod sursa (job #1175089)
# include <algorithm>
# include <cstdio>
# include <cstdlib>
# include <ctime>
const char *FIN = "algsort.in", *FOU = "algsort.out" ;
const int right = 500005 ;
int A[right] ;
int N ;
void qsort ( int *A, int st, int dr ) {
int mij = A[st + (dr - st) / 2], left = st, right = dr ;
if (st >= dr) return;
if (dr - st < 2) return;
while ( left <= right ) {
for ( ; A[left] < mij; ++left ) ;
for ( ; A[right] > mij; --right ) ;
if ( left <= right ) {
std :: swap ( A[left], A[right] ) ;
++left, --right ;
}
}
//if ( st < right )
qsort ( A, st, right ) ;
//if ( dr > left )
qsort ( A, left, dr ) ;
}
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
srand ( time(NULL) ) ;
scanf ( "%d", &N ) ;
for ( int i = 1; i <= N; ++i ) {
scanf ( "%d", A + i ) ;
}
qsort ( A, 1, N ) ;
for ( int i = 1; i <= N; ++i ) {
printf ( "%d ", A[i] ) ;
}
}