24 lines
No EOL
699 B
Markdown
24 lines
No EOL
699 B
Markdown
# 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é |