Junior — Middle
Објасните како функционише процес позива функције унутар себе и у којим случајевима то може бити корисно.
sobes.tech АИ
Одговор од АИ
Poziv funkcije unutar njenog sopstvenog tela naziva se rekurzija. U C# to znači da metoda poziva samu sebe da reši zadatak, deleći ga na jednostavnije podzadatke.
Rekurzija je korisna kada se zadatak prirodno deli na slične podzadatke, na primer, obilazak stabla, računanje faktoriala, pretraživanje u grafovima.
Primer računanja faktoriala pomoću rekurzije:
int Factorial(int n)
{
if (n <= 1)
return 1; // osnovni slučaj
else
return n * Factorial(n - 1); // rekurzivni poziv
}
Važno je imati osnovni slučaj da bi rekurzija prestala, u suprotnom će doći do beskonačnih poziva i prelivanja steka.
Rekurzija pojednostavljuje kod i čini ga čitljivijim za zadatke sa ponavljajućom strukturom, ali ponekad može biti zamenjena iteracijom radi poboljšanja performansi.