Sobes.tech
Intern

Kas yra rekursija?

sobes.tech AI

Atsakymas iš AI

Funkcija, kuri kviečia save pačią.

Naudojama sprendžiant problemas, kurias galima suskirstyti į subproblemas, turinčius tą pačią struktūrą kaip ir pradinė problema. Būtina turėti išėjimo sąlygą (bazinį atvejį), kad išvengtumėte begalinės kilpos.

Pavyzdys – faktorialo skaičiavimas:

<?php
function factorial(int $n): int
{
    // Bazinis atvejis
    if ($n <= 1) {
        return 1;
    }
    // Rekursinis iškvietimas
    return $n * factorial($n - 1);
}

echo factorial(5); // Išves 120
?>

Privalumai:

  • Elegantiškas ir glaustas kodas tam tikromis problemomis.

Trūkumai:

  • Gali sukelti steko perpildymą labai gilių rekursijų atvejais.
  • Gali būti mažiau efektyvus nei iteratyviniai sprendimai dėl papildomų funkcijų kvietimo išlaidų.

Dažnai naudojama medžių perėjimui, failų sistemų naršymui, kombinatorinių problemų sprendimui.