Imagen del artículo Recursión en programación.

15. Recursión en programación.

Página 15 | Escuchar en audio

La recursividad es un concepto fundamental en la lógica de programación que puede parecer complejo a primera vista, pero que, bien comprendido, puede ser una poderosa herramienta para la resolución de problemas. En términos simples, la recursividad es el proceso por el cual una función, dentro de su definición, se llama a sí misma. La recursividad se utiliza para resolver problemas que se pueden dividir en problemas más pequeños de naturaleza similar.

Un ejemplo clásico de un problema que se puede resolver de forma recursiva es calcular el factorial de un número. El factorial de un número n es el producto de todos los números enteros positivos menores o iguales que n. Sin embargo, el factorial de n también se puede definir como el producto de n y el factorial de n-1. Esto nos da una definición recursiva para calcular el factorial.

En pseudocódigo, la función factorial se puede escribir recursivamente de la siguiente manera:

función factorial(n) {
  si (n == 0) {
    devolver 1;
  } demás {
    devolver n * factorial(n-1);
  }
}

Tenga en cuenta que la función factorial se llama a sí misma dentro de su definición. Esto es lo que caracteriza a una función recursiva. Sin embargo, es importante tener en cuenta que una función recursiva siempre debe tener una condición de parada; de lo contrario, continuará llamándose a sí misma indefinidamente, lo que dará como resultado un bucle infinito. En el caso de la función factorial, la condición de parada es cuando n es igual a 0.

Otro ejemplo común de un problema que se puede resolver de forma recursiva es la secuencia de Fibonacci. La secuencia de Fibonacci es una secuencia de números en la que cada número es la suma de los dos números anteriores. Los dos primeros números de la secuencia de Fibonacci son 0 y 1, y cada número subsiguiente es la suma de los dos números anteriores.

En pseudocódigo, la función de Fibonacci se puede escribir recursivamente de la siguiente manera:

función fibonacci(n) {
  si (n == 0) {
    devolver 0;
  } más si (n == 1) {
    devolver 1;
  } demás {
    devolver fibonacci(n-1) + fibonacci(n-2);
  }
}

Al igual que la función factorial, la función de Fibonacci también se llama a sí misma dentro de su definición y tiene una condición de parada para evitar un bucle infinito.

La recursividad puede ser una herramienta muy poderosa para resolver problemas de programación. Sin embargo, es importante tener en cuenta que la recursividad puede ser más difícil de entender y rastrear que un enfoque iterativo. Además, la recursividad puede ser más ineficiente en términos de uso de memoria y tiempo de ejecución que un enfoque iterativo. Por lo tanto, es importante utilizar la recursividad con prudencia y sólo cuando proporcione una solución más clara y elegante al problema en cuestión.

En resumen, la recursividad es un concepto fundamental en la lógica de programación que involucra una función que se llama a sí misma dentro de su definición. La recursividad se utiliza para resolver problemas que se pueden dividir en problemas más pequeños de naturaleza similar. Si bien la recursividad puede ser una herramienta poderosa, es importante usarla con prudencia, ya que puede ser más difícil de entender y más ineficiente que un enfoque iterativo.

Ahora responde el ejercicio sobre el contenido:

¿Qué caracteriza a una función recursiva en programación?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Manipulación de cuerdas

Siguiente página del libro electrónico gratuito:

16Manipulación de cuerdas

2 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.