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

Алгоритм называется рекурсивным, если в нем содержится обращение к самому себе. Такое обращение может содержаться в тексте алгоритма явно, и тогда алгоритм называют прямо-рекурсивным. Если же головной алгоритм содержит обращение к вспомогательному алгоритму, который в свою очередь прямо или косвенно обращается к головному, то такой алгоритм называется косвенно-рекурсивным. Использование рекурсии целесообразно лишь в тех случаях, когда объекты алгоритма являются рекурсивными, то есть содержат самих себя или определены с помощью самих себя.

Использование рекурсии, как правило, приводит к получению более компактных, но менее эффективных алгоритмов.

Структурная алгоритмизация

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

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: