Pagini recente » Cod sursa (job #2418067) | Cod sursa (job #1163377) | Cod sursa (job #571586) | Cod sursa (job #2359642) | Cod sursa (job #1091547)
#include <fstream>
#include <algorithm>
using namespace std;
const int NMAX = 500005;
int N;
int v[NMAX];
ifstream f("algsort.in");
ofstream g("algsort.out");
void read() {
f >> N;
for(int i = 0; i < N; i++)
f >> v[i];
}
void quicksort(int begin, int end) {
if( begin >= end )
return;
int r = rand() % (end - begin) + begin;
int aux = v[r];
v[r] = v[end];
v[end] = aux;
int i = begin - 1;
while(v[i + 1] <= v[end] && i < end)
i++;
for(int j = i + 1; j <= end; j++)
if(v[j] <= v[end]){
i++;
int aux = v[i];
v[i] = v[j];
v[j] = aux;
}
quicksort(begin, i - 1);
quicksort(i + 1, end);
}
int main() {
read();
quicksort(0, N - 1);
for(int i = 0; i < N; i++)
g << v[i] << " ";
f.close();
g.close();
return 0;
}