Pagini recente » Cod sursa (job #1339924) | Cod sursa (job #466464) | Cod sursa (job #1165533) | Cod sursa (job #3230870) | Cod sursa (job #2540424)
#include <bits/stdc++.h>
#define cin fin
#define cout fout
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int n;
int v[500005];
int poz (int st, int dr){
int j, x;
x = st + rand ()%(dr - st + 1);
swap (v[x], v[st]);
j = 0;
while (st < dr){
if (v[st] > v[dr]){
swap (v[st], v[dr]);
j = 1 - j;
}
st += j;
dr -= 1 - j;
}
return st;
}
void cuicsort (int st, int dr){
if (st < dr){
int p = poz (st, dr);
cuicsort (st, p - 1);
cuicsort (p + 1, dr);
}
}
int main(){
cin >> n;
for (int i=1; i<=n; i++){
cin >> v[i];
}
srand (time(0));
cuicsort (1, n);
for (int i=1; i<=n; i++){
cout << v[i] << " ";
}
return 0;
}