# Rekurzivní programy - programy, které volají sami sebe - rekurze, musí někdy skončit! ## Přímá rekurze - metoda volá přímo sebe sama - je vidět na první pohled ## Nepřímá rekurze - `a` volá `b`, `b` volá `a` ## Problémy rekurze - problémy s hloubkou zásobníku - spíše programátorská chyba - **přetečení zásobníku** - pro mnoho praktických problémů je rekurze dostatečná - Java umožňuje nastavit velikost zásobníku - často lze přepsat do nerekurzivní formy - nerekurzivní zápis je **často rychlejší** - zrychlení se projeví, pokud je samotný vykonávaný kód triviální - někdy je přepsání poměrně složité