Junior
Čo je to rekurzívne správanie?
sobes.tech AI
Odpoveď od AI
Vykonávanie kódu alebo funkcií, ktoré sa volajú samy.
Hlavné prvky:
- Základný prípad: Podmienka, pri ktorej sa rekurzia zastaví. Bez nej by bola rekurzia nekonečná.
- Rekurzívny prípad: Časť funkcie, kde sa volá sama, zvyčajne s upraveným argumentom.
Príklad (výpočet faktoriálu):
func factorial(_ n: Int) -> Int {
// Základný prípad
if n <= 1 {
return 1
}
// Rekurzívny prípad
return n * factorial(n - 1)
}
// Príklad volania
let result = factorial(5) // 120
Výhody:
- Elegantné riešenie problémov s rovnakou štruktúrou (napríklad prechádzanie stromov).
- Kód je v niektorých prípadoch čitateľnejší.
Nevýhody:
- Môže spotrebovať veľa pamäte (zásobník volaní).
- Možné pretečenie zásobníka pri príliš hlbokej rekurzii.
- Niekedy je menej efektívne ako iteratívne riešenia.