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