Рекурсия -- что это в программировании

Рекурсия -- приём в программировании, когда некоторый модуль программы (фукция, метод) вызывают сами себя.
Такой вызов называет рекурсивным ("самовызов").

Конечность рекурсии

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

  1. где в вашем кода находится условие выхода из рекурсии
  2. и выполнится ли оно (условие выхода) вообще когда либо.

Когда использовать рекурсию

Умышленно использовать рекурсию не стоит (если вы знаете "линейный" алгоритм), но, тем не менее, решения многих прикладных алгоритмических задач очень удобно описываются с помощью "матрёшки" рекурсивных вызовов, в самом сердце которой находится условие/условия выхода из рекурсии (см. примеры ниже).

Пример рекурсивных вызовов

Задачи на рекурсию

См. список задач.

Key Words for FKN + antitotal forum (CS VSU):