Разлики между рекурсията и итерация

Рекурсията и итерията ускоряват изпълнението на програма.

рекурсия

Рекурсивната операция е процес, който се повтаря, докато се достигне окончателна инструкция от операцията. Най-често срещаната рекурсивна техника в компютърното програмиране е метод за намаляване на проблем, отгоре надолу, за да се получи по-проста версия на проблема, докато не се достигне основен случай. Решението на основния случай се комбинира с разрешаването на всеки един от предишните проблеми, докато стигне до първия, в най-сложния случай.

повторение

В компютърното програмиране една итеративна операция е тази, която повтаря процеса по определен брой пъти (повторения), в зависимост от параметрите, определени от програмиста. Обикновено изходът на една итерация на процеса се използва като начална точка за следващата итерация. Всяка стъпка води началото си от следващата стъпка. Процесът продължава до постигането на определена цел и приключва процесът.

Основна разлика

Най-важната разлика между рекурсивните и итеративните операции е, че стъпките на итеративна операция се изпълняват едно по едно и директно изпълнение директно към следващата стъпка. При рекурсивна операция всяка стъпка след първоначалната стъпка е реплика на предишната стъпка. В допълнение, отгоре надолу, всяка стъпка е малко по-лесна от тази, която е просто "отгоре". В края на операцията всички решения се комбинират, за да разрешат проблема.

Примери

Обичаен пример за курсийна операция е факториал. Факторът на числото е продукт на положителни числа по-малък или равен на този брой. Решаването на този проблем рекурсивно изисква умножаване на първоначалния брой само по себе си минус 1. Рекурсивният израз е n (n - 1), където n е първоначалното число. Всяка стъпка е малко по-лесна от предишната стъпка. Операцията завършва, когато n е намалена до 1. Пример за итерация е намирането на сумата от набор от номера. Итеративният израз е (n + (n + 1)), където n е първоначалното число. Всяка стъпка започва с решението от предишната стъпка. Операцията приключва, когато n достигне желания номер.