Заключение¶
В этой главе мы рассмотрели примеры нескольких рекурсивных алгоритмов. Они были подобраны таким образом, чтобы продемонстрировать вам различные задачи, для которых рекурсия является эффективной техникой решения. Ключевые моменты этой главы заключаются в следующем:
- Все рекурсивные алгоритмы должны иметь базовый случай.
- Рекурсивный алгоритм должны изменять своё состояние и двигаться по направлению к базовому случаю.
- Рекурсивный алгоритм должен вызывать сам себя (рекурсивно).
- В некоторых случаях итерирование можно заменять рекурсией.
- Часто рекурсивные алгоритмы естественно отображают формальное выражение задачи, которую вы пытаетесь решить.
- Рекурсия - не “серебряная пуля”. Иногда рекурсивное решение может быть более ресурсоёмким, чем альтернативный алгоритм.