Sobes.tech
Junior

V čem spočívá rozdíl mezi realizací téže úlohy pomocí rekurze a cyklu?

sobes.tech AI

Odpověď od AI

Rekurze používá volání vlastní funkce k řešení problému tím, že jej rozděluje na menší podúkoly až do základního případu. Cyklus naopak opakuje blok kódu určitý počet krát nebo dokud není splněna podmínka.

Charakteristika Rekurze Cyklus
Provedení Volání funkce Iterace
Paměť Používá zásobník volání Používá proměnné počítadla/podmínky
Čitelnost Může být stručnější pro některé úkoly Často přímočařejší
Výkon Může být pomalejší kvůli režii volání Obvykle efektivnější
Přetečení zásobníku Riziko přetečení při hluboké rekurzi Žádné riziko přetečení zásobníku

Příklad v C# (faktoriál):

Rekurzivní implementace:

// Rekurzivní výpočet faktoriálu
int FactorialRecursive(int n)
{
    if (n == 0)
    {
        return 1; // Základní případ
    }
    return n * FactorialRecursive(n - 1); // Rekurzivní volání
}

Implementace s cyklem:

// Výpočet faktoriálu pomocí cyklu
int FactorialIterative(int n)
{
    int result = 1;
    for (int i = 1; i <= n; i++)
    {
        result *= i;
    }
    return result;
}