Sobes.tech
Intern

Kas ir rekursija?

sobes.tech AI

Atbilde no AI

Funkcija, kas izsauc pati sevi.

Tiek izmanto, lai risinātu uzdevumus, kurus var sadalīt apakšuzdevumos ar tādu pašu struktūru kā sākotnējais uzdevums. Ir obligāti jābūt izejas nosacījumam (pamatgadījumam), lai izvairītos no bezgalīgas cilpas.

Piemērs – faktoriāļa aprēķins:

<?php
function factorial(int $n): int
{
    // Pamatgadījums
    if ($n <= 1) {
        return 1;
    }
    // Rekursīva izsaukšana
    return $n * factorial($n - 1);
}

echo factorial(5); // Izvadīs 120
?>

Priekšrocības:

  • Elegants un kods īss noteiktiem uzdevumiem.

Trūkumi:

  • Var novest pie steka pārsprāgšanas ļoti dziļas rekursijas gadījumā.
  • Potenciāli mazāk efektīvs nekā iteratīvi risinājumi tādiem pašiem uzdevumiem, ņemot vērā funkciju izsaukumu papildu izmaksas.

Bieži izmanto koku pārvietojumam, failu sistēmām, kombinatorikas uzdevumu risināšanai.