Rekurzia je opakovanie. Rekurzívny podprogram je taký podprogram, ktorý volá sám seba. Ak do rekurzívneho podprogramu neuvedieme podmienku ukončenia, bude sa opakovať donekonečna, hovoríme o nekonečnej rekurzii. Rekurzívny podprogram s podmienkou ukončenia využíva konečnú rekurziu.
- Rekurzia je mocný nástroj ale programátor musí zabezpečiť, aby niekde počas programu došlo k naplneniu ukončovacej podmienky.
- Každý rekruzívny algoritmus je možné prepísať na jeho iteračnú formu (čiže pomocou for alebo while)
Kedy používať rekurziu:
- Rekurzívny program je vhodný, ak riešený problém alebo používané údaje sú definované rekurzívne.
- Pri zložitejších rekurzívnych schémach je však transformácia na iteratívny tvar veľmi nepraktická.
- Programy, ktoré sú svojou podstatou rekurzívne (skôr než iteratívne), majú byť implementované pomocou rekurzívnych funkcií.