Pagini recente » Cod sursa (job #2628606) | Cod sursa (job #2931578) | Cod sursa (job #1970942) | Cod sursa (job #3182957) | Cod sursa (job #2662988)
#include <iostream>
#include <fstream>
const int NMAX = 5e5;
int n;
int a[1 + NMAX];
int qsort_part(int left, int right) {
int pivot_ind = left;
int pivot_val = a[right];
for (int i = left; i < right; ++i) {
if (a[i] < pivot_val) {
std::swap(a[pivot_ind], a[i]);
++ pivot_ind;
}
}
std::swap(a[pivot_ind], a[right]);
return pivot_ind;
}
void quicksort(int left, int right) {
if (left >= right)
return;
int index = qsort_part(left, right);
quicksort(left, index - 1);
quicksort(index + 1, right);
}
int main() {
std::ifstream in("algsort.in");
std::ofstream out("algsort.out");
in >> n;
for (int i = 1; i <= n; ++i)
in >> a[i];
in.close();
quicksort(1, n);
for (int i = 1; i <= n; ++i)
out << a[i] << ' ';
out.close();
return 0;
}