Sobes.tech
Junior

Co je to rekurzivní chování?

sobes.tech AI

Odpověď od AI

Provádění kódu nebo funkcí, které se volají samy sebe.

Hlavní prvky:

  • Základní případ: Podmínka, při které se rekurze zastaví. Bez ní by byla rekurze nekonečná.
  • Rekurzivní případ: Část funkce, kde se volá sama sebe, obvykle s upraveným argumentem.

Příklad (výpočet faktoriálu):

func factorial(_ n: Int) -> Int {
    // Základní případ
    if n <= 1 {
        return 1
    }
    // Rekurzivní případ
    return n * factorial(n - 1)
}
// Příklad volání
let result = factorial(5) // 120

Výhody:

  • Elegantní řešení problémů se stejnou strukturou (například průchod stromem).
  • Čitelnější kód v některých případech.

Nevýhody:

  • Může spotřebovat hodně paměti (zásobník volání).
  • Možný přetečení zásobníku při příliš hluboké rekurzi.
  • Někdy méně výkonné než iterativní řešení.