Pagini recente » Cod sursa (job #1492489) | Cod sursa (job #523853) | Cod sursa (job #2208222) | Cod sursa (job #483592) | Cod sursa (job #2482593)
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;
void quick_sort(vector<int> &a) {
int n = a.size();
if (n > 1) {
int pivot = rand() % n;
int val = a[pivot];
vector<int> low, high;
for (int i = 0; i < n; i++) {
if (a[i] < val)
low.push_back(a[i]);
else if (a[i] > val)
high.push_back(a[i]);
}
quick_sort(low);
quick_sort(high);
a.clear();
a.insert(a.end(), low.begin(), low.end());
a.insert(a.end(), n - low.size() - high.size(), val);
a.insert(a.end(), high.begin(), high.end());
}
return;
}
int main() {
#ifdef INFOARENA
ifstream cin("algsort.in");
ofstream cout("algsort.out");
#endif
int n; cin >> n;
vector<int> a(n);
for (int i = 0; i < n; i++)
cin >> a[i];
quick_sort(a);
for (int i = 0; i < n; i++)
cout << a[i] << " ";
cout << "\n";
return 0;
}