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.