Перейти до:

Рекурсія — це виклик функцією самої себе. Рекурсію застосовують, коли розв'язувана задача містить подібні до себе підзадачі. Залежно від вхідних даних розрізняють кінцевий виклик (розв'язує найпростішу задачу) та проміжний (має підзадачі, тож передбачає щонайменше один рекурсивний виклик).

Типовим прикладом застосування рекурсії є обчислення факторіалу:

function f(n) {
  if (n > 1) {
    return n * f(n - 1);
  }
  return 1;
}

Слід завважити, що будь-який алгоритм можна втілити без застосування рекурсії, але для вирішення певних задач її застосування спрощує та увиразнює код. Для прикладу розгляньмо обчислення факторіалу без рекурсії:

function f(n) {
  var value = 1;

  while (n > 1) {
    value *= n;
    n--;
  }

  return value;
}

Водночас для деяких алгоритмів перевага рекурсивного втілення буде навіть суттєвішою.

Дізнатись більше

Загальні відомості

Мітки документа й учасники

Мітки: 
Зробили внесок у цю сторінку: asmforce, bdvorianov
Востаннє оновлена: asmforce,