Код: Выделить всё
#include
using namespace std;
int partition(vector& vec, int low, int high) {
int i = low - 1;
int j = high + 1;
int pivot = vec[high];
while (1) {
do {
i++;
} while (vec[i] < pivot);
do {
j--;
} while (vec[j] > pivot);
if (i < j) {
swap(vec[i], vec[j]);
}
else {
return j;
}
}
}
void quicksort(vector& vec, int low, int high) {
if (low >= high) {
return;
}
int p = partition(vec, low, high);
quicksort(vec, low, p);
quicksort(vec, p + 1, high);
}
int main() {
int n, low, high;
cout > n;
vectorvec(n);
for (int i = 0; i < n; ++i) {
cin >> vec[i];
}
quicksort(vec, 0, n - 1);
for (int i = 0; i < n; ++i) {
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78475497/problems-with-quicksort-algorithm[/url]