TechLead
Intermedio
22 min
Guía completa

Recursión

Pensamiento recursivo, casos base y resolución recursiva

¿Qué es la recursión?

La recursión ocurre cuando una función se llama a sí misma para resolver instancias más pequeñas del mismo problema. Toda función recursiva necesita un caso base (condición de parada) y un caso recursivo.

Ejemplos clásicos

Factorial

function factorial(n) {
  if (n <= 1) return 1; // Base case
  return n * factorial(n - 1); // Recursive case
}

console.log(factorial(5)); // 120

Fibonacci

function fibonacci(n) {
  if (n <= 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

// With memoization for better performance
function fibMemo(n, memo = {}) {
  if (n in memo) return memo[n];
  if (n <= 1) return n;
  
  memo[n] = fibMemo(n - 1, memo) + fibMemo(n - 2, memo);
  return memo[n];
}

Sumar array

function sumArray(arr) {
  if (arr.length === 0) return 0;
  return arr[0] + sumArray(arr.slice(1));
}

Invertir cadena

function reverseString(str) {
  if (str.length <= 1) return str;
  return reverseString(str.slice(1)) + str[0];
}

Función potencia

function power(base, exp) {
  if (exp === 0) return 1;
  return base * power(base, exp - 1);
}

Consejos: Define siempre el caso base primero | Cuidado con desbordamiento de pila | Considera alternativas iterativas