Sobes.tech
Junior

Co je to rekurze?

sobes.tech AI

Odpověď od AI

Rekurze je způsob definování nebo vykonávání něčeho, když je objekt nebo proces definován nebo vykonáván skrze sebe sama. V programování je to funkce, která přímo nebo nepřímo volá sama sebe.

Hlavní složky rekurzivní funkce:

  • Základní případ (Base Case): Podmínka, při které rekurze končí. To zabraňuje nekonečné smyčce.
  • Rekurzivní krok (Recursive Step): Krok, při kterém funkce volá sama sebe, aby vyřešila podúkol, jehož velikost je menší než původní úkol, s cílem dosáhnout základního případu.

Příklad výpočtu faktoriálu čísla pomocí rekurze:

def factorial(n):
    # Základní případ: faktoriál 0 nebo 1 je 1
    if n == 0 or n == 1:
        return 1
    # Rekurzivní krok: n! = n * (n-1)!
    else:
        return n * factorial(n - 1)

# Příklad volání
# výsledek = factorial(5)  # Výsledek: 120

Rekurze může udělat kód elegantnější pro úkoly, které mají rekurzivní strukturu (například průchod stromů, některé algoritmy třídění). Nicméně může spotřebovat více paměti (kvůli zásobníku volání) a v některých případech být méně výkonná ve srovnání s iterativními řešeními.

Porovnání s iterací:

Aspekt Rekurze Iterace
Paměť Může spotřebovat více paměti (zásobník volání) Obvykle vyžaduje méně paměti
Výkon V některých případech může být pomalejší Obvykle má předvídatelnější výkon
Čitelnost Pro rekurzivní úkoly může být přehlednější Pro jednoduché úkoly často jasnější
Kontrola Méně zřejmá kontrola nad cyklem (zásobník) Zřejmá kontrola pomocí cyklů (for, while)

V QA automatizaci může být rekurze použita například při procházení vnořených prvků na webové stránce nebo strukturovaných datech (JSON, XML) pro hledání nebo ověření určitého prvku.