Pagini recente » Cod sursa (job #1376440) | Cod sursa (job #1924668) | Cod sursa (job #928914) | Cod sursa (job #76924) | Cod sursa (job #1345179)
#include<fstream>
#include<time.h>
#include<stdlib.h>
using namespace std;
int n, i;
int v[500001];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int poz(int st, int dr){
int x = rand() % (dr - st) + st;
int aux;
aux = v[st];
v[st] = v[x];
v[x] = aux;
int ii = 0, jj = -1, i = st, j = dr;
while(i < j){
if(v[i] > v[j]){
aux = v[i];
v[i] = v[j];
v[j] = aux;
aux = ii;
ii = -jj;
jj = -aux;
}
i += ii;
j += jj;
}
return i;
}
void sorteaza(int st, int dr){
if(st < dr){
int p = poz(st, dr);
sorteaza(st, p - 1);
sorteaza(p + 1, dr);
}
}
int main(){
srand(time(0));
fin>> n;
for(i = 1; i <= n; i++){
fin>> v[i];
}
sorteaza(1, n);
for(i = 1; i <= n; i++){
fout<< v[i] <<" ";
}
return 0;
}