Junior
Co je to rekurzivní chování?
sobes.tech AI
Odpověď od AI
Provádění kódu nebo funkcí, které se volají samy sebe.
Hlavní prvky:
- Základní případ: Podmínka, při které se rekurze zastaví. Bez ní by byla rekurze nekonečná.
- Rekurzivní případ: Část funkce, kde se volá sama sebe, obvykle s upraveným argumentem.
Příklad (výpočet faktoriálu):
func factorial(_ n: Int) -> Int {
// Základní případ
if n <= 1 {
return 1
}
// Rekurzivní případ
return n * factorial(n - 1)
}
// Příklad volání
let result = factorial(5) // 120
Výhody:
- Elegantní řešení problémů se stejnou strukturou (například průchod stromem).
- Čitelnější kód v některých případech.
Nevýhody:
- Může spotřebovat hodně paměti (zásobník volání).
- Možný přetečení zásobníku při příliš hluboké rekurzi.
- Někdy méně výkonné než iterativní řešení.