Está en la página 1de 7

ALGORITMOS RECURSIVOS

 

Es una llamada desde la misma función.

Son recursivos aquellos algoritmos que están dentro de ellos mismos y son llamados una y otra vez.

RECURSIVIDAD INDIRECTA
RECURSIVIDAD INDIRECTA

Cuando una subrutina llama a otra pero no la llama ella misma sino que la llama otra subrutina formando ciclos.

Subrutina a -> Subrutina B - > Subrutina A Subrutina a -> Subrutina B - > Subrutina C - > Subrutina A

TIPOS DE RECURSION

 
RECURSION LINEAL
RECURSION LINEAL

Si cada llamada recursiva genera, como mucho otra llamada recursiva.

FINAL : Si la llamada recursiva es la última operación que se efectúa, devolviéndose como resultado lo que se haya obtenido de la llamada

recursiva sin modidificación al guna.

NO FINAL: El resultado obtenido de la llamada recursiva se combina para dar lugar al resultado de la función que realiza la llamada.

RECURSION MULTIPLE
RECURSION MULTIPLE

Si alguna llamada puede generar más de una llamada adicional.

TIPOS DE RECURSION

 

Ejemplo de RECURSION LINEAL

// N mayor o igual 0 y M mayor o igual 0 // Función MCD(n,m:entero) devuelve entero Var resultado: entero SI n= m ENTONCES Resultado = n

SI NO SI n>m ENTONCES Resultado = MCD(n-m,m) SI NO Resultado = MCD(n,m-n) FIN SI FIN SI RETORNA resultado FIN FUNCION

TIPOS DE RECURSION

 

Ejemplo de RECURSION LINEAL NO FINAL

// n mayor o igual 0 // Función FACTORIAL(n:entero) devuelve entero Var resultado SI n < 2 ENTONCES Resultado = 1

SI NO

Resultado = n * FACTORIAL(n -1) FIN SI

RETORNA resultado FIN FUNCION

TIPOS DE RECURSION

 

Ejemplo de RECURSION MULTIPLE

// N mayor o igual 0 // Función FIBONACCI(N:entero) devuelve entero Var resultado: entero SI N < 1 ENTONCES Resultado = N

SI NO

Resultado = FIBONACCI(N-1) + FIBONACCI(N-2) FIN SI

RETORNA resultado FIN FUNCION

EFICACIA DE LA RECURSIVIDAD

 

Se dice que es menos eficaz que la ITERATIVA porque ocupa más memoria y mayor tiempo de ejecución pero hace el programa más sencillo y comprensible.

Un programa recursivo se puede transformar en una solución iterativa mediante el uso de pilas.

CALCULO DE PILAS

 

Las pilas se utilizan para almacenar los valores de los parámetros del subprograma, los valores de las variables y los resultados de la función.

.