Sobes.tech
Intern

Czym jest rekurencja?

sobes.tech AI

Odpowiedź od AI

Funkcja wywołująca samą siebie.

Stosowana do rozwiązywania problemów, które można podzielić na podproblemy o takiej samej strukturze jak problem główny. Musi mieć warunek zakończenia (przypadek bazowy), aby uniknąć nieskończonej pętli.

Przykład obliczania silni:

<?php
function factorial(int $n): int
{
    // Przypadek bazowy
    if ($n <= 1) {
        return 1;
    }
    // Wywołanie rekurencyjne
    return $n * factorial($n - 1);
}

echo factorial(5); // Wypisze 120
?>

Zalety:

  • Elegancja i zwięzłość kodu dla niektórych problemów.

Wady:

  • Może prowadzić do przepełnienia stosu przy zbyt głębokim poziomie rekurencji.
  • Potencjalnie mniej wydajna niż rozwiązania iteracyjne dla tych samych problemów z powodu narzutów związanych z wywołaniami funkcji.

Często stosowana do przechodzenia przez drzewa, systemy plików, rozwiązywania problemów kombinatorycznych.