Я бы сравнил рекурсию со взрывчаткой: вы можете достичь большого результата в кратчайшие сроки. Но если вы используете его без предупреждения, результат может быть катастрофическим.
Я был очень впечатлен доказательством сложности рекурсии, которая вычисляет числа Фибоначчи здесь . Рекурсия в этом случае имеет сложность O ((3/2) ^ n), в то время как итерация просто O (n). Вычисление n = 46 с рекурсией, написанной на c #, занимает полминуты! Ничего себе ... * * 1005
ИМХО рекурсию следует использовать только в том случае, если природа сущностей хорошо подходит для рекурсии (деревья, синтаксический анализ, ...) и никогда из-за эстетичности. Производительность и потребление ресурсов любого «божественного» рекурсивного кода должны быть тщательно изучены.