Pagini recente » Cod sursa (job #161697) | Cod sursa (job #2593403) | Cod sursa (job #2294152) | Cod sursa (job #756131) | Cod sursa (job #1589258)
#include <fstream>
#include <ctime>
#include <stdlib.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
unsigned int n, v[500001];
void svap( unsigned int &a, unsigned int &b )
{
int x = a;
a = b;
b = x;
return;
}
void quicksort( int l, int r )
{
if( l >= r )
return;
int p = rand()%(r-l) + l;
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()
{
srand( time(0) );
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;
}