Pagini recente » Cod sursa (job #903299) | Cod sursa (job #258533) | Cod sursa (job #101237) | Cod sursa (job #1859143) | Cod sursa (job #3253819)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <random>
using namespace std;
int v[500000];
int poz(int a, int b){
int di=0, dj=-1;
int i=a, j=b;
while(i<j){
if (v[i] > v[j]) {
swap(v[i], v[j]);
swap(di, dj);
di*=-1; dj*=-1;
}
i+=di;
j+=dj;
}
return i;
}
void quicksort(int a, int b){
if(a<b){
int p=poz(a, b);
quicksort(a, p-1);
quicksort(p+1, b);
}
}
int main(){
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n; fin>>n;
for(int i=0; i<n; i++){
fin>>v[i];
}
shuffle(v, v+n, default_random_engine(0));
quicksort(0, n-1);
for(int i=0; i<n; i++){
fout<<v[i]<<" ";
}
return 0;
}