Pagini recente » Cod sursa (job #524126) | Cod sursa (job #2980785) | Cod sursa (job #1694158) | Cod sursa (job #2049431) | Cod sursa (job #3332593)
#include <iostream>
#include <fstream>
#include <vector>
#include <random>
#include <ctime>
using namespace std;
mt19937 rng(time(nullptr));
void quicksort(vector<int>& v, int st, int dr) {
if (st >= dr) {
return;
}
int pos = st + rng() % (dr - st + 1);
int p = v[pos];
swap(v[pos], v[dr]);
int j = st;
for (int i = st; i < dr; i++) {
if (v[i] < p) {
swap(v[i], v[j]);
j++;
}
}
swap(v[j], v[dr]);
quicksort(v, st, j - 1);
quicksort(v, j + 1, dr);
}
int main() {
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n; cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) {
cin >> v[i];
}
quicksort(v, 0, n - 1);
for (auto i : v) {
cout << i << " ";
}
cout << "\n";
return 0;
}