Sobes.tech
Intern

Какво е рекурсия?

sobes.tech AI

Отговор от AI

Рекурсията е процес, при който една функция се извиква сама. В програмирането, рекурсивната функция е такава, която се извиква директно или индиректно сама себе си. За да се избегне безкраен цикъл, рекурсивната функция трябва да има базов случай (base case), при който спира да се извиква.

Примери за използване:

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

Пример за изчисляване на факториал с помощта на рекурсия:

def factorial(n):
  # Базов случай: факториалът на 0 е 1
  if n == 0:
    return 1
  # Рекурсивен случай: факториалът на n = n * факториал на (n-1)
  else:
    return n * factorial(n - 1)

# Пример за използване
result = factorial(5)
# резултат ще бъде 120

Недостатъци на рекурсията:

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