Sobes.tech
Junior

Шта је рекурзивно понашање?

sobes.tech АИ

Одговор од АИ

Izvršavanje koda ili funkcija koje same sebe pozivaju.

Glavni elementi:

  • Osnovni slučaj: Uslov pod kojim se rekuzija zaustavlja. Bez toga, rekuzija bi bila beskonačna.
  • Rekuzivni slučaj: Deo funkcije gde ona poziva samu sebe, obično sa izmenjenim argumentom.

Primer (izračunavanje faktoriala):

func factorial(_ n: Int) -> Int {
    // Osnovni slučaj
    if n <= 1 {
        return 1
    }
    // Rekuzivni slučaj
    return n * factorial(n - 1)
}
// Primer poziva
let result = factorial(5) // 120

Prednosti:

  • Elegantno rešenje za probleme sa istom strukturom (npr. obilazak stabala).
  • Kod je u nekim slučajevima čitljiviji.

Nedostaci:

  • Može trošiti mnogo memorije (stog poziva).
  • Moguće prelivanje stoga kod prevelike dubine rekuzije.
  • Ponekad je manje efikasno od iterativnih rešenja.