Pagini recente » Cod sursa (job #2185460) | Cod sursa (job #1670110) | Cod sursa (job #610485) | Cod sursa (job #2421832) | Cod sursa (job #2783765)
#include <bits/stdc++.h>
using namespace std;
const string FILENAME = "algsort";
ifstream fin(FILENAME + ".in");
ofstream fout(FILENAME + ".out");
vector < int > v;
int Partition(int lo, int hi) {
int idx = (lo + hi) / 2;
swap(v[idx], v[hi]);
int i = lo;
for (int j = lo; j < hi; ++j) {
if (v[j] <= v[hi]) {
swap(v[i], v[j]);
++i;
}
}
swap(v[i], v[hi]);
return i;
}
void QSort(int lo, int hi) {
if (lo >= hi) return;
int part = Partition(lo, hi);
QSort(lo, part - 1);
QSort(part + 1, hi);
}
int main() {
int n; fin >> n;
v.resize(n);
for (int i = 0; i < n; ++i) {
fin >> v[i];
}
QSort(0, n - 1);
for (int i = 0; i < n; ++i) {
fout << v[i] << " ";
}
return 0;
}