Pagini recente » Cod sursa (job #389436) | Cod sursa (job #1575979) | Cod sursa (job #756827) | Cod sursa (job #2154313) | Cod sursa (job #1588788)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n, v[100001];
void svap( int &a, int &b )
{
int x = a;
a = b;
b = x;
return;
}
void quicksort( int l, int r )
{
if( l >= r )
return;
int p = ( l + ( r - l ) / 2 );
int z = v[ p ];
int k = r;
for( int i = l ; i <= k ; i++ )
{
if( v[ i ] > z )
{
if( k == p )
p = i;
svap( v[ i ] , v[ k-- ] );
i--;
}
}
if( v[ k ] <= v[ p ] )
svap( v[ k ] , v[ p ] );
quicksort( l , k - 1 );
quicksort( k + 1 , r );
}
int main()
{
fin>>n;
for( int i = 1; i <= n ; i++ )
{
fin>>v[ i ];
}
quicksort( 1 , n );
for( int i = 1 ; i <= n ; i++ )
{
fout<<v[ i ]<<' ';
}
return 0;
}