domingo, 27 de octubre de 2013

Recursividad

Recursividad 

Un algoritmo recursivo es un algoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva o recurrente.
Generalmente, si la primera llamada al subprograma se plantea sobre un problema de tamaño u orden N, cada nueva ejecución recurrente del mismo se planteará sobre problemas, de igual naturaleza que el original, pero de un tamaño menor que N. De esta forma, al ir reduciendo progresivamente la complejidad del problema que resolver, llegará un momento en que su resolución sea más o menos trivial (o, al menos, suficientemente manejable como para resolverlo de forma no recursiva). En esa situación diremos que estamos ante un caso base de la recursividad.
Las claves para construir un subprograma recurrente son:
  • Cada llamada recurrente se debería definir sobre un problema de menor complejidad (algo más fácil de resolver).
  • Ha de existir al menos un caso base para evitar que la recurrencia sea infinita.
Es frecuente que los algoritmos recurrentes sean más ineficientes en tiempo que los iterativos aunque suelen ser mucho más breves en espacio.

- Definición : Propiedad de las funciones (Métodos) de auto llamarse, son una alternativa a los procesos iterativos.
- Utilidad : Cuando los procesos iterativos son muy complejos.
- Aplicación : Recorrido de estructuras no lineales, solución de ecuaciones matemáticas complejas.
- Implementacion : 

FUNCIÓN Factorial(n)
    VAR resultado: Entero
 
    SI (n<2) ENTONCES
        resultado = 1;
    SINO
        resultado = n * Factorial(n-1);
    FSI
 
    RETORNA resultado;
FFUNCIÓN

No hay comentarios:

Publicar un comentario