Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Рекурсивный алгоритм решения задачи





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

Структурно рекурсивная функция на верхнем уровне всегда представляет

собой команду ветвления (выбор одной из двух или более альтернатив в

зависимости от условия (условий), которое в данном случае уместно назвать

«условием прекращения рекурсии»), имеющей две или более альтернативные

ветви, из которых хотя бы одна является рекурсивной и хотя бы одна —

терминальной. Рекурсивная ветвь выполняется, когда условие прекращ

ения рекурсии ложно, и содержит хотя бы один рекурсивный вызов —

прямой или опосредованный вызов функцией самой себя. Терминальная

ветвь выполняется, когда условие прекращения рекурсии истинно; она

возвращает некоторое значение, не выполняя рекурсивного вызова.

Правильно написанная рекурсивная функция должна гарантировать, что

через конечное число рекурсивных вызовов будет достигнуто выполнение

условия прекращения рекурсии, в результате чего цепочка последовательных

рекурсивных вызовов прервётся и выполнится возврат.

 

Помимо функций, выполняющих один рекурсивный вызов в каждой

рекурсивной ветви, бывают случаи «параллельной рекурсии», когда на одной

рекурсивной ветви делается два или более рекурсивных вызова.

Параллельная рекурсия типична при обработке сложных структур данных,

таких как деревья. Простейший пример параллельно-рекурсивной

функции — вычисление ряда Фибоначчи, где для получения значения n-го

члена необходимо вычислить (n-1)-й и (n-2)-й.

 

 

ОПИСАНИЕ ПРОГРАММ







Date: 2016-06-06; view: 368; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию