Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комплект Информатика / Презентации. Информатика / Рекурсивные структуры в алгоритмах.pptx
Скачиваний:
50
Добавлен:
22.05.2015
Размер:
542.72 Кб
Скачать

Рекурсивные структуры в алгоритмах

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

Рекурсия используется, когда можно выделить самоподобие задачи.

В искусстве рекурсия выглядит примерно так :

Или как в народной песенке:

У попа была собака, он её любил, Она съела кусок мяса, он её убил, В землю закопал, Надпись написал:

У попа была собака, он её любил, Она съела кусок мяса, он её убил, В землю закопал, Надпись написал:

У попа была собака, он её любил, Она съела кусок мяса, он её убил, В землю закопал,

Надпись написал:

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

Для функции Rec, где входной параметр целое число, функция проверяет, является ли число положительным, запускает сама себя с параметром меньшим, чем входной на единицу, затем печатает входной параметр. В главной функции вызовем описанную нами процедуру с параметром 3.

Рисунок 1 - Блок схема работы рекурсивной процедуры

Вообще нет определенного стандарта для графического показа рекурсии .

Еще один визуальный образ происходящего представлен на рис. 2.

Рисунок 2 - Выполнение процедуры Rec с параметром 3 состоит из выполнения процедуры Rec с параметром 2 и печати числа 3. В свою очередь выполнение процедуры Rec с параметром 2 состоит из выполнения процедуры Rec

с параметром 1 и печати числа 2. И т. д.

Возможна чуть более сложная схема: функция A вызывает функцию B, а та в свою очередь вызывает A. Это называется сложной рекурсией. При этом оказывается, что описываемая первой процедура должна вызывать еще не описанную. Чтобы это было возможно, требуется использовать опережающее описание.

Опережающее описание процедуры B позволяет вызывать ее из процедуры A.

Если обычную рекурсию можно уподобить уроборосу (рисунок 3), то образ сложной рекурсии можно почерпнуть из известного детского стихотворения, где «Волки с перепуга, скушали друг друга». Представьте себе двух съевших друг друга волков, и вы поймете сложную рекурсию.

Соседние файлы в папке Презентации. Информатика