Sobes.tech
Intern

Čo je to rekurzia?

sobes.tech AI

Odpoveď od AI

Rekurzia je proces, pri ktorom funkcia volá sama seba. V programovaní je rekurzívna funkcia taká, ktorá sa volá priamo alebo nepriamo sama seba. Aby sa zabránilo nekonečnej slučke, musí mať rekurzívna funkcia základný prípad (base case), pri ktorom prestane volať sama seba.

Príklady použitia:

  • Prechádzanie dátových štruktúr (napríklad stromov).
  • Riešenie problémov, ktoré je možné rozdeliť na menšie podproblémy rovnakého typu (napríklad výpočet faktoriálu).

Príklad výpočtu faktoriálu pomocou rekurzie:

def factorial(n):
  # Základný prípad: faktoriál 0 je 1
  if n == 0:
    return 1
  # Rekurzívny prípad: faktoriál n = n * faktoriál (n-1)
  else:
    return n * factorial(n - 1)

# Príklad použitia
result = factorial(5)
# výsledok bude 120

Nevýhody rekurzie:

  • Môže spotrebovať veľa pamäte kvôli zásobníku volaní.
  • Môže byť menej efektívna v porovnaní s iteratívnymi riešeniami pre niektoré problémy.
  • Môže viesť k pretečeniu zásobníka pri hlbokých rekurzívnych volaniach.