La recursividad o recursion es la forma en la que se especifica un proceso basado en si mismo (Wikipedia), es cuando una funcion se llama así misma.
La recursividad tiene muchas aplicaciones en diferentes áreas principalmente en matemáticas hoy vamos a ver el uso básico y veremos como mostrar numeros de forma ascendente y descendente.
Vamos a usar el lenguaje python para ver de manera mas facil el funcionamiento.
Ejemplo basico
Tenemos el siguiente codigo:
1
2
3
4
5
|
def hola(): print "Hola" hola() hola() |
En este ejemplo tenemos la definición de la funcion hola() que imprime el mensaje “Hola” y despues se vuelve a ejecutar la funcion hola() generando un ciclo infinito.
Orden Descendente
Si le agregamos uno o mas parametros a la funcion podemos lograr muchas cosas.
En el siguiente caso haremos una cuenta regresiva, es decir agregamos un numero por ejemplo 9 y se mostraran los numeros en orden descendente hasta llegar a cero, podemos sustituir cero por otro numero para asignar un limite.
1
2
3
4
5
6
|
def hola(n): print "Hola " ,n if n> 0 : hola(n - 1 ) hola( 9 ) |
Ahora usamos una condicion if, que solo ejecutara la funcion recursiva si el numero es mayor que cero, y en cada repeticion se decrementara en 1 hasta llegar a cero.
Orden Ascendente
En el siguiente caso mostraremos los numero en orden ascendente partiendo de un numero inical hasta un limite.
1
2
3
4
5
6
|
def hola(n): print "Hola " ,n if n< 10 : hola(n + 1 ) hola( 0 ) |
Aquí tenemos que 0 es el numero inicial y 10 es el limite, se mostrara los números del 0 al 10.