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