Sobes.tech
Junior

Mis on rekursiivne käitumine?

sobes.tech AI

Vastus AI-lt

Kood või funktsioonide täitmine, mis kutsuvad iseennast.

Peamised elemendid:

  • Põhjus: Tingimus, mille korral rekursioon peatub. Ilma selleta oleks rekursioon lõpmatu.
  • Rekursiivne juhtum: Funktsiooni osa, kus see kutsub iseennast, tavaliselt muudetud argumendiga.

Näide (faktoriaali arvutamine):

func factorial(_ n: Int) -> Int {
    // Põhjus
    if n <= 1 {
        return 1
    }
    // Rekursiivne juhtum
    return n * factorial(n - 1)
}
// Näide kutsest
let result = factorial(5) // 120

Eelised:

  • Elegantne lahendus probleemidele, millel on sarnane struktuur (näiteks puude läbimine).
  • Mõnel juhul kood on loetavam.

Miinused:

  • Võib tarbida palju mälu (kutsungipuu).
  • Võimalik virna ülevool väga sügava rekursiooni korral.
  • Mõnikord vähem tõhus kui iteratiivsed lahendused.