Pagini recente » Cod sursa (job #2550086) | Cod sursa (job #729716) | Cod sursa (job #990452) | Cod sursa (job #535459) | Cod sursa (job #3202430)
#include <bits/stdc++.h>
using namespace std;
int v[500001];
int partition(int st, int dr){
int i = st - 1, j = st;
for(; j < dr; j++){
if(v[j] <= v[dr]){
i++;
swap(v[i], v[j]);
}
}
swap(v[i + 1], v[dr]);
return i + 1;
}
void quickSort(int st, int dr){
if(st >= dr)
return ;
int pos = rand() % (dr - st + 1) + st;
swap(v[dr], v[pos]);
int piv = partition(st, dr);
quickSort(st, piv - 1);
quickSort(piv + 1, dr);
}
int main() {
int n;
freopen("algsort.in", "r", stdin);
freopen("algsort.out", "w", stdout);
srand(time(NULL));
scanf("%d", &n);
for(int i = 1; i <= n; i++){
scanf("%d", &v[i]);
}
quickSort(1, n);
for(int i = 1; i <= n; i++)
printf("%d ",v[i]);
return 0;
}