Junior
V čom spočíva rozdiel medzi realizáciou rovnakej úlohy pomocou rekurzie a slučky?
sobes.tech AI
Odpoveď od AI
Rekurzia používa volanie funkcie samej seba na riešenie problému tým, že ho rozdeľuje na menšie podúlohy až do základného prípadu. Cyklus však opakuje blok kódu určitý počet krát alebo kým nie je splnená podmienka.
| Charakteristika | Rekurzia | Cyklus |
|---|---|---|
| Vykonanie | Volanie funkcie | Opakovanie (Iterácia) |
| Pamäť | Používa zásobník volaní | Používa premenné čítača/podmienky |
| Čitateľnosť | Môže byť stručnejšia pre niektoré úlohy | Často priamočiarejšia |
| Výkon | Môže byť pomalšia kvôli režii volaní | Zvyčajne efektívnejšia |
| Pretečenie zásobníka | Riziko pretečenia pri hlbokej rekurzii | Žiadne riziko pretečenia zásobníka |
Príklad v C# (faktoriál):
Rekurzívna implementácia:
// Rekurzívne výpočty faktoriálu
int FactorialRecursive(int n)
{
if (n == 0)
{
return 1; // Základný prípad
}
return n * FactorialRecursive(n - 1); // Rekurzívne volanie
}
Implementácia s cyklom:
// Výpočet faktoriálu pomocou cyklu
int FactorialIterative(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}