El concepto de lo recursivo para programación

Una función recursiva es esa que se llama a sí misma para resolverse. Diciéndolo de otra forma, una función recursiva se resuelve con una llamada a sí misma. Logra ajustar su valor en un parámetro en la llamada a la función. Por medio de varias llamadas recursivas al trabajo se van consiguiendo valores. Éstos al ser computados, funcionarían para conseguir el valor en la función ya obtenida.

El procedimiento de las llamadas recursivas todo el tiempo ha de terminar en una llamada a la cual la función en la que se arregla de forma directa, sin requerir el invocar una nueva función. Eso será indispensable, para que llegue el instante en el que se corten las llamadas reiterativas que involucran a toda función y no acceda a un tipo de bucle infinito de invocaciones.

Posiblemente es la teoría que más cuesta ver ya que se trata de una función recursiva que se debe poner en práctica. Un ejemplo tradicional sería la función factorial. El factorial es una función matemática el cual logra resolver por medio de la multiplicación de número por todos los números naturales que existen entre él y 1.

Un ejemplo: Factorial de 4 es lo mismo a 4 *3*1. Si se fijan, para el ejemplo factorial de 4 se logra solucionar con el 4*3! O sea, se puede calcular el factorial de un número si se multiplica ese por el número factorial del número menor a 1.

n! = n * (n-1)!

Con respecto a la función factorial, se tiene el caso básico que factorial de 1 es lo mismo a 1. Por lo que podrán usar como un punto de ruptura de las conocidas recursivas. De esa manera, se va a hacer una codificación en la función recursiva factorial.

Lo primero que van a hacer es un pseudocódigo:

[callout font_size=”13px” style=”bluegrey”]

funcion factorial(n)
si n=1 entonces
factorial = 1
sino
factorial = n * factorial(n-1)
fin funcion

Seguidamente se ve cómo se añadiría esa ocupación en el lenguaje de la programación Javascript:

function factorial(n){
if(n==1)
return 1
else
return n * factorial(n-1)
} callout]

Como pueden apreciar, la recursividad no muestra alguna complejidad y en realidad se trata de un instrumento bastante ventajoso al momento de programar los algoritmos.

Existen varios algoritmos que sólo se resuelven utilizando la recursividad o por lo menos cuyo trabajo sea más directo y elegante y esté asentado a hacer funciones recursivas, que se designen a sí mismo para poder conseguir un excelente resultado al final.