Junior
У чему се састоји разлика између реализовања истог задатка коришћењем рекурзије и петље?
sobes.tech АИ
Одговор од АИ
Rekurzija koristi poziv funkcije same sebe za rešavanje problema, deleći ga na manje podzadatke sve dok ne dođe do osnovnog slučaja. Petlja, s druge strane, ponavlja blok koda određeni broj puta ili dok se ne ispuni uslov.
| Karakteristika | Rekurzija | Petlja |
|---|---|---|
| Izvršavanje | Poziv funkcije | Iteracija |
| Memorija | Koristi stek poziva | Koristi promenljive brojača/uslova |
| Čitljivost | Može biti kraća za neke zadatke | Često direktnija |
| Performanse | Može biti sporija zbog troškova poziva | Obično efikasnija |
| Prelivanje steka | Rizik od prelivanja kod duboke rekurzije | Nema rizika od prelivanja steka |
Primer u C# (faktorijal):
Rekurzivna implementacija:
// Rekurzivno računanje faktorijela
int FactorialRecursive(int n)
{
if (n == 0)
{
return 1; // Osnovni slučaj
}
return n * FactorialRecursive(n - 1); // Rekurzivni poziv
}
Implementacija sa petljom:
// Računanje faktorijela pomoću petlje
int FactorialIterative(int n)
{
int result = 1;
for (int i = 1; i <= n; i++)
{
result *= i;
}
return result;
}