Pagini recente » Cod sursa (job #2802631) | Borderou de evaluare (job #1261569) | Cod sursa (job #717335) | Cod sursa (job #423278) | Cod sursa (job #1424905)
#include<fstream>
using namespace std;
ifstream fin( "algsort.in" );
ofstream fout( "algsort.out" );
const int nmax = 500000;
int v[ nmax + 1 ];
void my_qsort( int st, int dr ) {
int piv = v[ (st + dr) / 2 ];
int i = st, j = dr;
do {
while ( i < dr && v[ i ] < piv ) ++ i;
while ( j > st && v[ j ] > piv ) -- j;
if ( i <= j ) {
int aux = v[ i ]; v[ i ] = v[ j ]; v[ j ] = aux;
++ i; -- j;
}
} while ( i <= j );
if ( i < dr ) {
my_qsort( i, dr );
}
if ( j > st ) {
my_qsort( st, j );
}
}
int main() {
int n;
fin >> n;
for( int i = 1; i <= n; ++ i ) {
fin >> v[ i ];
}
my_qsort( 1, n );
for( int i = 1; i <= n; ++ i ) {
fout << v[ i ] << " ";
}
fout << "\n";
fin.close();
fout.close();
return 0;
}