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;
}