Почему рекурсия так важна?

  • Рекурсия — это очень важная концепция в программировании, которую необходимо освоить, чтобы эффективно работать со структурой данных при написании алгоритмов и решении задач.
  • Графики и деревья — это естественные рекурсивные структуры данных.

Что такое рекурсия?

Проще говоря, рекурсия — это цикл

Если рекурсия и итерация — это циклы, чем они отличаются?

  1. Рекурсия занимает дополнительное место в стеке. Мы знаем, что рекурсия занимает дополнительное место в стеке памяти для каждого рекурсивного вызова, что потенциально может иметь большую сложность пространства по сравнению с итерацией.
  2. Рекурсия обеспечивает более чистый и читаемый код. Несмотря на то, что требуется больше места, использование рекурсии может сделать ваш код более читабельным по сравнению с итерацией.

Две фазы рекурсии

  • базовый случай
  • рекурсивный случай

Рекурсия — это функция, которая многократно вызывает себя в меньших формах с идеей, что сложную проблему можно решить проще, решив меньшую версию той же проблемы.

Что делает рекурсия

  1. повторяйте вызов все меньшей и меньшей версии самого себя, пока не получите наименьший возможный случай
  2. этот наименьший случай является базовым случаем
  3. Затем вы используете ответ на этот базовый случай, чтобы решить следующую наименьшую проблему, затем следующую, затем следующую и так далее, пока не вернетесь к исходной проблеме, с которой вы начали.

Краткое содержание

  • У нас есть одна фаза, идущая к базовому случаю.
  • У нас есть еще одна фаза, возвращающаяся из базового случая.

Первая фаза перехода от исходного рекурсивного вызова к базовому варианту называется этап вызова.

Второй этап возврата от базового варианта к исходному рекурсивному вызову называется этап возврата.

Итерация состоит только из фазы вызова, а рекурсия состоит из фазы вызова и фазы возврата.