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