Rozdíly mezi rekurzí a iterací
Rekurze
Rekurzivní operace je proces, který se opakuje, dokud nedojde k závěrečné instrukci z operace. Nejčastější rekurzivní technika v počítačovém programování je metoda snižování problému, a to od shora dolů, čímž se jednodušeji zjednoduší verze problému, dokud se nedosáhne základního případu. Řešení základního případu je kombinováno s řešením každého z předchozích problémů až do dosažení prvního, v nejobtížnějším případě.
Iterace
Při programování v počítači je iterativní operace opakující se proces během stanoveného počtu opakování (v závislosti na parametrech definovaných programátorem). Obvykle se jako výchozí bod pro další iteraci použije výstup jedné iterace procesu. Každý krok přichází s dalším krokem. Proces pokračuje, dokud není dosaženo určitého cíle a proces skončí.
Hlavní rozdíl
Nejdůležitější rozdíl mezi rekurzivními a iteračními operacemi spočívá v tom, že kroky iterační operace se provádějí po jednom a přímým spuštěním přímo do dalšího kroku. Při rekurzním postupu je každý krok po počátečním kroku replikou předchozího kroku. Navíc, od horní části dolů, je každý krok o něco jednodušší než ten, který je právě "nahoře". Na konci operace jsou všechna řešení spojena k vyřešení problému.
Příklady
Obvyklým příkladem kurzívní operace je factorial. Faktor čísla je produktem kladných celých čísel, které jsou menší nebo rovné tomuto číslu. Řešení tohoto problému rekurzivně vyžaduje vynásobení počátečního čísla samo o sobě mínus 1. Rekurzivní výraz je n (n - 1), kde n je počáteční číslo. Každý krok je o něco snazší než předchozí krok. Operace končí, když n je redukován na 1. Příklad iterace je součet množiny čísel. Iterativní výraz je (n + (n + 1)), kde n je počáteční číslo. Každý krok začíná řešením z předchozího kroku. Operace končí, když n dosáhne požadovaného čísla.