Pagini recente » Cod sursa (job #783) | Cod sursa (job #475149) | Cod sursa (job #1368283) | Cod sursa (job #3215266) | Cod sursa (job #514022)
Cod sursa(job #514022)
# include <cstdio>
const char *FIN = "algsort.in", *FOU = "algsort.out";
int V[500005], N ;
void swap ( int &A, int &B ) {
int aux = A ;
A = B ;
B = aux ;
}
void sorteaza ( int *V, int i, int j ) {
if ( V[i] > V[j] )
swap ( V[i], V[j] ) ;
if ( i + 1 >= j )
return ;
int k = ( j - i + 1 ) / 3 ;
sorteaza ( V, i, j - k ) ;
sorteaza ( V, i + k, j ) ;
sorteaza ( V, i, j - k ) ;
}
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%d", &N ) ;
for ( int i = 1; i <= N; ++i )
scanf( "%d", V + i ) ;
sorteaza ( V, 1, N ) ;
for ( int i = 1; i <= N; ++i )
printf( "%d ", V[i] );
}