Pagini recente » Cod sursa (job #1364496) | Cod sursa (job #1824102) | Cod sursa (job #1035741) | Cod sursa (job #865132) | Cod sursa (job #1598280)
#include <fstream>
using namespace std;
const int MAXN = 500003;
void read( int &N, int v[] ) {
ifstream fin("algsort.in");
fin >> N;
for ( int i = 0; i < N; ++i )
fin >> v[i];
}
void quicksort( int v[], int first, int last ) {
if ( last < first )
return;
int pivot = v[ first ];
int i = first + 1;
int j = last;
while ( i < j ) {
while ( i <= last && v[i] < pivot )
++i;
while ( j >= 0 && v[j] > pivot )
--j;
if ( i < j )
swap( v[i], v[j] );
}
swap( v[j], v[first] );
quicksort( v, first, j-1 );
quicksort( v, j+1, last );
}
void write( int N, int v[] ) {
ofstream fout("algsort.out");
for ( int i = 0; i < N; ++i )
fout << v[i] << ' ';
}
int main () {
int N, v[MAXN];
read( N, v );
quicksort( v, 0, N-1 );
write( N, v );
return 0;
}