Pagini recente » Cod sursa (job #1824700) | Cod sursa (job #696380) | Cod sursa (job #2782344) | Cod sursa (job #1543705) | Cod sursa (job #2643345)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
std::ifstream fin("algsort.in");
std::ofstream fout("algsort.out");
int findPivot(std::vector<int>& v, int st, int dr) {
int p = v[dr], k = st - 1;
for (int i = st; i < dr; ++i) {
if (v[i] < p) {
k++;
std::swap(v[i], v[k]);
}
}
std::swap(v[k + 1], v[dr]);
return k + 1;
}
void quickSort(std::vector<int>& v, int st, int dr) {
if (st < dr) {
int p = findPivot(v, st, dr);
quickSort(v, st, p - 1);
quickSort(v, p + 1, dr);
}
}
int main() {
int n;
fin >> n;
std::vector<int> v(n);
for (int i = 0; i < n; ++i) {
fin >> v[i];
}
quickSort(v, 0, n - 1);
for (int i = 0; i < n; ++i) {
fout << v[i] << ' ';
}
return 0;
}