Алгоритмы
Т. Н. Горностаева
http://izd-mn.com/
42
Контрольные вопросы к теме
1. Какие алгоритмы называются вспомогательными (подчиненными)?
2. Какие алгоритмы называются основными (главными)?
3. В виде чего оформляются вспомогательные алгоритмы в алгоритмических
языках программирования?
4. Какая информация указывается в вспомогательных
алгоритмах в блок-
схемах?
5. В виде чего оформляются вспомогательные алгоритмы в основном в блок-
схемах?
6. Какая информация указывается в флажках?
7. В каких случаях имеет смысл использовать вспомогательные алгоритмы?
3.2 Рекурсивные алгоритмы
С понятием вспомогательного, в данном случае, лучше
использовать термин -
подчиненного алгоритма, непосредственно связано понятие рекурсивного алгоритма.
Рекурсивные алгоритмы очень часто
используются и в информатике, и в математике.
Алгоритм, который обращается сам к себе
как к подчиненному алгоритму,
называется
рекурсивным.
Рассмотрим примеры таких алгоритмов. Алгоритм вычисления n!
является как
раз таким. Из
математики известно, что n! = 1·2·3·4·…·n (1), то есть, это
произведение натуральных чисел от 1 до n. Сама эта формула уже является алгоритмом
вычисления n!. Формулу (1) можно записать иначе:
1
n
,
1)!
(n
1
n
1,
!
n
(2)
Формула (2) тоже вычисляет n!, но является уже рекурсивным алгоритмом, так
как содержит рекурсию (n – 1)!. Чтобы понять, как выполняется рекурсия, рассмотрим
пример.
Для вычисления 5! нужно рассуждать так:
5! можно вычислить по второй формуле из (2), если знать 4!;
4! можно вычислить по второй формуле из (2), если знать 3!;
3! можно вычислить по второй формуле из (2), если знать 2!;
2! можно вычислить по второй формуле из (2), если знать 1!;
1! можно вычислить по первой формуле из (2).
Теперь
нужно идти в обратном порядке, то есть,
зная 1! = 1, вычислить 2! = 1·2 = 2,
зная 2!, вычислить 3! = 2·3 = 6,
зная 3!, вычислить 4! = 6·4 = 24,
зная 4!, вычислить 5! = 24·5 = 120.