Intern
Ce este recursia?
sobes.tech AI
Răspuns de la AI
Funcție care se apelează pe sine însăși.
Se aplică pentru rezolvarea problemelor care pot fi împărțite în subprobleme având aceeași structură ca și problema inițială. Este obligatoriu să existe o condiție de ieșire (caz de bază) pentru a evita un ciclu infinit.
Exemplu de calcul al factorialului:
<?php
function factorial(int $n): int
{
// Caz de bază
if ($n <= 1) {
return 1;
}
// Apel recursiv
return $n * factorial($n - 1);
}
echo factorial(5); // Va afișa 120
?>
Avantaje:
- Eleganță și concizie a codului pentru anumite probleme.
Dezavantaje:
- Poate duce la depășirea stivei cu niveluri foarte adânci de recursiune.
- Potențial mai puțin eficient decât soluțiile iterative pentru aceleași probleme din cauza costurilor suplimentare ale apelurilor de funcții.
Este frecvent utilizată pentru traversarea arborilor, sistemelor de fișiere, rezolvarea problemelor combinatorice.