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