Рекурсия в информатике

Реку́рсия в информатике, описание процесса (например, алгоритма решения задачи) посредством обращения (отсылки) к самому описанию (как правило, при других исходных данных).

Использование рекурсии в программировании позволяет описать решения многих задач проще, чем при отказе от рекурсии, упрощает формальный анализ или даже доказательство правильности программного кода, однако часто рекурсивное решение не является наилучшим с точки зрения затрачиваемых вычислительных ресурсов и используемой памяти. Ярким примером ухудшения производительности и улучшения понятности программ при использовании рекурсии являются алгоритмы типа ««разделяй-и-властвуй» (в том числе рекурсивные реализации т. н. быстрого преобразования Фурье, сортировки слиянием или быстрой сортировки).

Корректное использование рекурсии требует рассмотрения т. н. базового случая: явного описания ситуации (условий) и последовательности действий, когда решение задачи может быть достигнуто без отсылки к нему же.

Математическую основу рекурсии составляет аппарат рекурсивных функций.

Литература

  • Ахо А. В. Структуры данных и алгоритмы / А. В. Ахо, Д. Э. Хопкрофт, Д. Д. Ульман ; пер. с англ. А. А. Минько. – Москва [и др.] : Вильямс, 2001.
  • Кормен Т. Алгоритмы : построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест ; пер. с англ.: К. Белов [и др.]. – Москва : МЦНМО, 2002. – (Классические учебники: computer science).
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru