Junior
Какво е рекурсивно поведение?
sobes.tech AI
Отговор от AI
Изпълнение на код или функции, които се извикват сами.
Основни елементи:
- Базов случай: Условие, при което рекурсията спира. Без него, рекурсията ще бъде безкрайна.
- Рекурсивен случай: Частта от функцията, където тя се извиква сама, обикновено с променен аргумент.
Пример (изчисление на факториел):
func factorial(_ n: Int) -> Int {
// Базов случай
if n <= 1 {
return 1
}
// Рекурсивен случай
return n * factorial(n - 1)
}
// Пример за извикване
let result = factorial(5) // 120
Предимства:
- Елегантно решение за проблеми с еднаква структура (например, обхождане на дървета).
- По-лесен за четене код в някои случаи.
Недостатъци:
- Може да консумира много памет (стек на извикванията).
- Възможно преливане на стек при твърде дълбока рекурсия.
- Понякога по-малко ефективно от итеративни решения.