Jak Začít?

Máš v počítači zápisky z přednášek
nebo jiné materiály ze školy?

Nahraj je na studentino.cz a získej
4 Kč za každý materiál
a 50 Kč za registraci!




02_rekurze

PDF
Stáhnout kompletní materiál zdarma (851.81 kB)

Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.

Rekurze

Přednáška 2

Rekurze

• Rekurze je jeden ze způsobů řešení algoritmů
• Rekurze je stav, kdy objekt je součástí sám sebe 

(například: namíříme-li kameru na monitor, který 

zobrazuje obraz z kamery či soustava protilehlých 

zrcadel)

• Rekurze musí obsahovat podmínku ukončení 

(konečnost algoritmu)

• Rekurze je situace, kdy se jako součást řešení problému 

objeví stejný problém/řešení

• Většinu případů rekurzí lze převést na nerekurzivní 

algoritmus (a naopak )

Rekurze

• Rekurze je spojená s vysokými nároky na využití 

paměti zásobníku 

• I vlastní kód rekurzivního volání je rozsáhlejší o režii 

s voláním funkce a předáváním parametrů. Tato 
část zabere také více času oproti realizaci cyklem

• Rekurentní algoritmy mohou vést k přehlednějšímu 

řešení (pro některé typy úloh)

• V programování se objevuje rekurze u funkcí a u 

datových typů

Rekurze

• U datových typů se jedná o struktury s uzly, které se odkazují/propojují 

s jinými uzly stejného typu. Proměnná reprezentující uzel, musí tedy 
obsahovat stejnou proměnnou, nebo několik, které na ni navazují. 
(Binární strom se skládá z uzlu a dvou stromů …).

• V případě, že by proměnná obsahovala přímo stejnou proměnnou, došlo 

by k rekurzi přímo při jejím vytváření a tím by jedna proměnná zaplnila 
celou paměť. Proto se pro návazné struktury musí používat odkaz 
(ukazatel).

• Druhým důvodem proč nemůže proměnná obsahovat sama sebe je to, 

že v daném místě ještě není dokončena její definice a proto se nezná její 
velikost (a překladač pro ni tedy nemůže vyhradit místo, které nezná a 
zahlásí chybu).

Rekurze

• Příklady rekurze

• strom (z větve jdou větve, co je ještě větev? …)
• většina her - pravidla v každém tahu jsou stejná, princip 

řešení je tedy stejný i když se data mění. 

• matrjošky  ( https://www.educative.io/collection/page/10370001/760001/1000001 )
• fraktály ( https://www.root.cz/clanky/fraktaly-kolem-nas/) 
• Google.com -> zadat heslo „Recursion“

Témata, do kterých materiál patří