Pagini recente » Cod sursa (job #1621839) | Cod sursa (job #623974) | Cod sursa (job #1009726) | Profil MihaelaCismaru | Cod sursa (job #2291366)
#include <bits/stdc++.h>
using namespace std;
const int N = 5e5 + 2;
int n, a[N];
int partitie(int st, int dr) {
int pivot = a[dr], i = st;
for(int j = st; j < dr; ++j) {
if(a[j] < pivot) {
swap(a[i], a[j]);
++i;
}
}
swap(a[i], a[dr]);
return i;
}
void quick_sort(int st, int dr) {
if(st >= dr) return;
int pivot = st + rand() % (dr - st + 1);
swap(a[pivot], a[dr]);
int poz = partitie(st, dr);
quick_sort(st, poz - 1);
quick_sort(poz + 1, dr);
}
int main() {
ifstream cin("algsort.in");
ofstream cout("algsort.out");
cin >> n;
srand(time(0));
for(int i = 1; i <= n; ++i)
cin >> a[i];
quick_sort(1, n);
for(int i = 1; i <= n; ++i)
cout << a[i] << ' ';
}