#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]
[code]#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