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

Предимства:

  • Елегантно решение за проблеми с еднаква структура (например, обхождане на дървета).
  • По-лесен за четене код в някои случаи.

Недостатъци:

  • Може да консумира много памет (стек на извикванията).
  • Възможно преливане на стек при твърде дълбока рекурсия.
  • Понякога по-малко ефективно от итеративни решения.