Pagini recente » Cod sursa (job #2068935) | Cod sursa (job #2127604) | Cod sursa (job #474679) | Profil Djok | Cod sursa (job #1799900)
#include <cstdlib>
#include <fstream>
#include <vector>
using namespace std;
void quicksort(vector<int>& values, const int from, const int to) {
if (from >= to - 1) {
return;
}
const int threshold = values[from + rand() % (to - from)];
int midLeft = from, midRight = to;
for (int i = from; i < midRight; ++i) {
if (values[i] < threshold) {
swap(values[i], values[midLeft++]);
} else if (values[i] > threshold) {
swap(values[i--], values[--midRight]);
}
}
quicksort(values, from, midLeft);
quicksort(values, midRight, to);
}
int main() {
ifstream in("algsort.in");
ofstream out("algsort.out");
int n;
in >> n;
auto values = vector<int>(n);
for (int i = 0; i < n; ++i) {
in >> values[i];
}
quicksort(values, 0, n);
for (int i = 0; i < n; ++i) {
out << values[i] << (i < n - 1 ? " " : "\n");
}
in.close();
out.close();
}