Задать вопрос
eugene_leshchinskiy
@eugene_leshchinskiy

Как избавиться от StackOverFlow при рекурсивной сортировке?

Как при помощи рекурсивной quick sort отсортировать массив из, например, 10^6 элементов? Я так понимаю, заканчивается память потока, и он выдает исключение. Как с этим в Java борются, или просто используют другую сортировку?
  • Вопрос задан
  • 345 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
Решения вопроса 1
impwx
@impwx
Разработчик
Для этого используется паттерн "трамплин". Есть хороший пример реализации на StackOverflow (увы, текст на английском):

stackoverflow.com/a/32909860/1293168
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Не обязательно в качестве "стека" использовать системный стек вызовов. Вы можете вместо рекурсии использовать цикл, а вместо системного стека вызовов использовать стек в библиотеке вашего языка программирования. Вместо рекурсивного вызова у вас будет помещение кортежа значений - параметров сортировки - на стек и их извлечение оттуда на очередном шаге обработки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы