Встречается на собеседованиях • сегодня

Что эффективнее рекурсия или цикл

В большинстве случаев циклы эффективнее рекурсии, так как:

  • Не создают новых вызовов в стеке
  • Потребляют меньше памяти
  • Имеют предсказуемую производительность

Рекурсия может привести к переполнению стека при большой глубине вызовов. Однако, в некоторых случаях рекурсивные решения более читаемы (например, обход деревьев).

Пример с факториалом:

javascript
// Цикл
function factorialLoop(n) {
  let result = 1;
  for (let i = 2; i <= n; i++) result *= i;
  return result;
}

// Рекурсия
function factorialRec(n) {
  return n <= 1 ? 1 : n * factorialRec(n - 1);
}

Оптимизация: современные JS-движки поддерживают TCO (Tail Call Optimization), которая позволяет избежать переполнения стека при хвостовой рекурсии.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы