No.47631
[Full thread]
Раз нет такого треда, то он будет здесь.
Написал быструю сортировку (с рекурсией) на VBA в excel (x32). При достаточно большом размере массива появляется ошибка переполнения стека. Переписал сортировку без рекурсии (сделал динамический массив-имитатор стека, в который записывались номера двух граничных элементов для следующих шагов рекурсии). Алгоритм не только стал работать быстрее, но и переполнения стека уже не возникает.
А теперь вопросы. Почему стек ограничен и при его переполнении он не расширяется на свободную память, которая, как свидетельствует работающий нерекурсивный алгоритм, имеется. Если такое ограничение стека есть не только в VBA, но и много где ещё, почему всё же люди используют рекурсию, а не её имитацию, хотя бы в том же виде, как сделал я?