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.