8.1 Rekurze a metoda Rozděl a Panuj

Rekurzivní algoritmus je postup řešení problému nad vstupními daty, při kterém

  • se stejný postup aplikuje na jednu nebo více částí vstupních dat (čili menší instance problému se řeší stejně jako původní problém),
  • současně se poskytne přímé řešení triviální instance problému
  • a řešení celého problému se sestaví z řešení podproblémů.

Tato metoda řešení problémů rozdělením na podproblémy řešené stejným způsobem se označuje Rozděl a Panuj. Při vhodném použití může tato technika vést k překvapivě efektivním algoritmům.

Výhody rekurzivní metody konstrukce algoritmů:

  • Úspornost: zápis kódu je kratší.
  • Přirozenost: opakování a samopodobnost jsou běžné v přírodě.
  • Intuitivnost: explicitně pojmenujeme to, co se opakuje v menším.
  • Expresivnost: rekurzivní zápis umožňuje snadné vyjádření složitosti rekurentní rovnicí (viz BI-MA2) a ověření korektnosti.

Běhové prostředí programovacího jazyka musí zařídit přes systémový zásobník zanořování a návraty z rekurze.