Junior
Ce este comportamentul recursiv?
sobes.tech AI
Răspuns de la AI
Executarea codului sau a funcțiilor care se apelează pe sine.
Elemente principale:
- Cazul de bază: Condiția în care recursia se oprește. Fără aceasta, recursia ar fi infinită.
- Cazul recursiv: Partea funcției în care aceasta se apelează pe sine, de obicei cu un argument modificat.
Exemplu (calculul factorialului):
func factorial(_ n: Int) -> Int {
// Cazul de bază
if n <= 1 {
return 1
}
// Cazul recursiv
return n * factorial(n - 1)
}
// Exemplu de apel
let result = factorial(5) // 120
Avantaje:
- Soluție elegantă pentru probleme cu structură auto-similară (de exemplu, parcurgerea arborilor).
- Cod mai ușor de citit în unele cazuri.
Dezavantaje:
- Poate consuma multă memorie (stivă de apeluri).
- Posibil overflow de stivă în recursii foarte profunde.
- Uneori mai puțin eficient decât soluțiile iterative.