Cod sursa(job #606758)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500005],i,N;
void qsort(int st, int dr) {
int p=st+ rand()%(dr-st+1),i=st,j=dr;
if(st>=dr) return;
while(i<=j) {
while(v[i]<v[p] && i<=dr) i++;
while(v[j]>v[p] && j>=st) j--;
if(i<=j) {
swap(v[i],v[j]);
i++;
j--;
}
if(st<j) qsort(st,j);
if(i<dr) qsort(i,dr);
}
}
int main() {
srand(time(0));
fin >> N;
for(i=1;i<=N;i++) fin >> v[i];
qsort(1,N);
for(i=1;i<=N;i++) fout << v[i] << ' ';
}