У чому перевага рекурсіі?
Рекурсія функції – це функція, яка звертається до самої себе. Звернемо увагу на «життєвий» приклад, який може працювати у програмуванні.
Уявіть, що вам треба зайти у кімнату, яка зачинена. Поруч знаходиться коробка, на котрій вказано, що ключ знаходиться в ній. Відкриваєте коробку і диво — всередині ще коробки. А в них ще коробки. І так буде продовжуватись до певного моменту. Що ж можна зробити аби знайти потрібну коробку з ключем?
Для цього існує два методи.
У першому випадку ви застосуєте цикл «while». Тобто
ви будете відкривати коробку за коробкою і так поки не відкриєте ту саму
потрібну, в якій знаходиться ключ. Цей метод називається ітераційним,
або покроковим.
def summa(n):
x = 0
for n in
range(1, n+1):
x += n
return x
print(summa(5))
>>> 15
З іншого боку, у нас є завдання, дії в якому
повторюються, змінюються лише параметри, тому ми можемо використати й
рекурсивний метод. Тобто, розв'язати задачу, використавши її саму.
def summa(n):
if n == 1:
return 1
return n +
summa(n-1)
print (summa(5))
>>> 15
У цьому прикладі summa(1) – це 1, summa(2) – це 2 + summa(1)
і так далі. Даний алгоритм простіше буде зрозуміти на наступній схемі:
Загалом, обидва алгоритми працюють і виконують потрібне нам
завдання – шукають «коробку з ключем». До того ж, у такому випадку метод
рекурсії не матиме особливої переваги над ітераційним.
Однак рекурсія функції краще вирішує складні,
багаторівневі завдання. Метод рекурсії допоможе виконати їх швидше та
зрозуміліше, а ще, що важливо, рішення завдань методом рекурсії легше
підтримувати. Окрім того,
Коментарі
Дописати коментар