Sobes.tech
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;
}