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)); // 120Fibonacci
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