Junior
93
questionbank
В чем разница между рекурсией и итерацией?
Ответ от нейросети
sobes.tech AI
Рекурсия — функция вызывает саму себя. Итерация — повторяющийся процесс с использованием цикла.
| Признак | Рекурсия | Итерация |
|---|---|---|
| Механизм | Вызов функции самой себя | Использование циклов (for, while) |
| Память | Использует стек вызовов | Не использует стек вызовов в такой степени |
| Читаемость | Может быть более лаконичной для некоторых задач | Может быть менее интуитивной для рекурсивных задач |
| Производительность | Может быть медленнее и использовать больше памяти из-за накладных расходов вызовов | Обычно более производительна |
| Опасность | Stack Overflow при глубокой вложенности | Infinite loop при некорректных условиях выхода |
Пример рекурсивного вычисления факториала:
def factorial_recursive(n):
if n == 0:
return 1
else:
return n * factorial_recursive(n - 1) # Рекурсивный вызов
Пример итеративного вычисления факториала:
def factorial_iterative(n):
result = 1
for i in range(1, n + 1):
result *= i # Итерация в цикле
return result