#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
Я написал задание для класса структур данных, и мне не удается понять, как «реализовать основную функцию быстрой сортировки, которая рекурсивно сортирует подмассивы, сформированные путем разделения», что подразумевает, что рекурсия происходит в...
Я написал задание для класса структур данных, и мне не удается понять, как «реализовать основную функцию быстрой сортировки, которая рекурсивно сортирует подмассивы, сформированные путем разделения», что подразумевает, что рекурсия происходит в...
Я пытаюсь применить быструю сортировку к массиву суффиксов. Массив суффиксов содержит все начальные индексы строки. Первый раздел работает, остальные нет. Я просмотрел множество примеров кода быстрой сортировки и не могу понять, почему сортировка...
Я новичок в параллельном программировании и не понимаю, почему метод QuickSortParallel работает медленнее, чем моя последовательная версия (без Parallel.Invoke). У меня есть неровный массив, состоящий из ста тысяч девятизначных чисел, которые я...
Я уже решил проблему с помощью сортировки слиянием, теперь думаю, можно ли вычислить число с помощью быстрой сортировки? Я также написал код быстрой сортировки, но не знаю, как посчитать. Вот мой код: