Pagini recente » Cod sursa (job #235427) | Diferente pentru propuneri/16-reorganizare-arhiva intre reviziile 6 si 5 | Cod sursa (job #498884) | Cod sursa (job #2179020) | Cod sursa (job #2673666)
// Mihai Priboi
#include <bits/stdc++.h>
int v[500000];
void quicksort( int st, int dr ) {
int i, j, mij, aux;
mij = v[(st + dr) / 2];
i = st;
j = dr;
do {
while( i < dr && v[i] < mij ) i++;
while( j > st && v[j] > mij ) j--;
if( i <= j ) {
aux = v[i];
v[i] = v[j];
v[j] = aux;
i++;
j--;
}
} while( i <= j );
if( st < j ) quicksort( st, j );
if( i < dr ) quicksort( i, dr );
}
int main() {
FILE *fin, *fout;
int n, i;
fin = fopen( "algsort.in", "r" );
fscanf( fin, "%d", &n );
for( i = 0; i < n; i++ )
fscanf( fin, "%d", &v[i] );
quicksort(0, n - 1);
fclose( fin );
fout = fopen( "algsort.out", "w" );
for( i = 0; i < n; i++ )
fprintf( fout, "%d ", v[i] );
fclose( fout );
return 0;
}