Pagini recente » Cod sursa (job #849196) | Cod sursa (job #992946) | Cod sursa (job #772022) | Cod sursa (job #2040338) | Cod sursa (job #2643349)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
std::ifstream fin("algsort.in");
std::ofstream fout("algsort.out");
void QuickSort(std::vector<int>& v, int st, int dr) {
if (st < dr) {
int mid = (st + dr) / 2;
int pivot = v[st];
v[st] = v[mid];
v[mid] = pivot;
int i = st, j = dr, d = 0;
while (i < j) {
if (v[i] > v[j]) {
pivot = v[i];
v[i] = v[j];
v[j] = pivot;
d = 1 - d;
}
i += d;
j -= 1 - d;
}
QuickSort(v, st, i - 1);
QuickSort(v, i + 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;
}