Cod sursa(job #606759)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500005],i,N;
/*void swap(int &a, int &b) {
int aux=a; a=b; b=aux;
}
*/
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] << ' ';
}