Доброго времени суток. Изучаю алгоритмы и в качестве задания реализовал быструю сортировку(см. код ниже). Сравниваю с алгоритмами в мировой паутине, ничем кардинально не отличается, но мой вызывает Stack Overflow, подскажите, почему?
void my_qsort(vector<int>& arr, int l, int r)
{
int left = l;
int right = r;
int mid = left + (right - left) / 2;
while (left <= right) {
while (arr[left] < mid) {
left++;
}
while (arr[right] > mid) {
right--;
}
if (left <= right) {
swap(arr[left++], arr[right++]);
}
}
if (l < right) {
my_qsort(arr, l, right);
}
if (r > left) {
my_qsort(arr, r, left);
}
}
void my_qsort(vector<int>& arr, int l, int r)
{
int left = l;
int right = r;
int mid = arr[(left + right) / 2];
while (left <= right) {
while (arr[left] < mid) {
left++;
}
while (arr[right] > mid) {
right--;
}
if (left <= right) {
swap(arr[left++], arr[right--]);
}
}
if (l < right) {
my_qsort(arr, l, right);
}
if (r > left) {
my_qsort(arr, left, r);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Здравствуйте, возник вопрос как заполнить список из файлаИмеется структура, список двусвязный
Как вернуть меню что снизу экрана (Компилятор Ресурсы Журнал Компиляции) в Dev C++
Код записывает в массив остатки от деления, что бы перевести число в двоичную системуНо необходимо "перевернуть" числа