Junior
Mis vahe on sama ülesande realiseerimisel rekursiooni ja tsükli kasutamisel?
sobes.tech AI
Vastus AI-lt
Rekursioon kasutab sama funktsiooni väljakutset probleemi lahendamiseks, jagades selle väiksemateks ülesanneteks kuni põhijuhtumi saavutamiseni. Tsükkel kordab seevastu koodiplokki määratud arv kordi või kuni tingimus täidetakse.
| Omadus | Rekursioon | Tsükkel |
|---|---|---|
| Täideviimine | Funktsiooni väljakutse | Iteratsioon |
| Mälu | Kasutab väljakutsete virna | Kasutab loendur/tingimuse muutujaid |
| Lugemine | Võib olla lühem teatud ülesannete jaoks | Sageli otsekohesem |
| Tõhusus | Võib olla aeglasem väljakutsete lisakulu tõttu | Tavaliselt tõhusam |
| Virna üleujutus | Sügava rekursiooni korral risk üleujutusele | Riski ei ole |
Näide C#-s (factorial):
Rekursiivne rakendus:
// Rekursiivne factorial arvutamine
int FactorialRecursive(int n)
{
if (n == 0)
{
return 1; // Põhjus
}
return n * FactorialRecursive(n - 1); // Rekursiivne väljakutse
}
Rakendus tsükliga:
// Factorial arvutamine tsükliga
int FactorialIterative(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}