Sobes.tech
Intern

Mis on rekursioon?

sobes.tech AI

Vastus AI-lt

Funktsioon, mis kutsub iseennast üles.

Kasutatakse probleemide lahendamiseks, mida saab jagada alamprobleemideks, millel on sama struktuur kui algsel probleemil. Vajalik on väljundtingimus (põhjuhtum), et vältida lõpmatut tsüklit.

Näide faktoriaali arvutamisest:

<?php
function factorial(int $n): int
{
    // Põhjuhtum
    if ($n <= 1) {
        return 1;
    }
    // Rekursiivne kutsung
    return $n * factorial($n - 1);
}

echo factorial(5); // Väljasta 120
?>

Eelised:

  • Elegantne ja lühike kood teatud probleemide jaoks.

Miinused:

  • Võib põhjustada virna ülevoogu väga sügava rekursiooni korral.
  • Potentsiaalselt vähem tõhus kui iteratiivsed lahendused sama probleemi jaoks, funktsioonikutsumiste lisakulu tõttu.

Kasutatakse sageli puude läbimiseks, failisüsteemide navigeerimiseks, kombinatoorsete probleemide lahendamiseks.