Junior — Middle
Vysvětlete, jak funguje proces volání funkce sama v sobě a v jakých případech může být užitečný.
sobes.tech AI
Odpověď od AI
Volání funkce uvnitř jejího vlastního těla se nazývá rekurze. V C# to znamená, že metoda volá sama sebe, aby vyřešila úkol tím, že ho rozdělí na jednodušší podúkoly.
Rekurze je užitečná, když se úkol přirozeně dělí na podobné podúkoly, například procházení stromu, výpočet faktoriálu, hledání v grafech.
Příklad výpočtu faktoriálu pomocí rekurze:
int Factorial(int n)
{
if (n <= 1)
return 1; // základní případ
else
return n * Factorial(n - 1); // rekurzivní volání
}
Je důležité mít základní případ, aby rekurze skončila, jinak dojde k nekonečným voláním a přetečení zásobníku.
Rekurze zjednodušuje kód a činí jej čitelnějším pro úkoly s opakující se strukturou, ale někdy ji lze nahradit iterací pro zvýšení výkonu.