Sobes.tech
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.