Que es recursividad en informática

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 3,03 KB

*La recursividad

Es una alternativa diferente para implementar estructuras de repetición (ciclos). Los módulos se hacen llamadas recursivas--Recurre a utilizar la misma función para resolver el problema.---“Función que se llama a sí misma”

*Las funciones recursivas se componen de

Caso base: una solución simple para un caso particular (puede haber más de un caso base).

-Caso recursivo: una solución que involucra volver a utilizar la función original, con parámetros que se acercan más al caso base. Los pasos que sigue el caso recursivo son los siguientes:

1-El procedimiento se llama a sí mismo

2-El problema se resuelve, tratando el mismo problema pero de tamaño menor

3-La manera en la cual el tamaño del problema disminuye asegura que el caso base eventualmente se alcanzará

*Un razonamiento recursivo tiene dos partes:

la base y la regla recursiva de construcción. La base no es recursiva y es el punto tanto de partida como de terminación de la definición.

*¿Cómo funciona la recursividad?

-La recursividad es posible gracias a la existencia de pilas.

-Las soluciones recursivas suelen ser bastante cortas pero utilizan mucho más espacio en la memoria del ordenador, este es el principal inconveniente.

-La Pila la crea el propio compilador y en ella guarda todas las variables, parámetros y procedimientos, así como la dirección de retorno (línea donde se realizó la llamada anterior).

-Esta Pila se irá vaciando poco a poco se va deshaciendo el trabajo.

*¿Por qué escribir programas recursivos?

-Son mas cercanos a la descripción matemática.

-Generalmente mas fáciles de analizar

-Se adaptan mejor a las estructuras de datos recursivas.

-Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y elegantemente simples.

*¿Cuándo usar recursividad?

--Para simplificar el código.

 Cuando la estructura de datos es recursiva ejemplo : árboles.

*¿Cuándo no usar recursividad?

--Cuando los métodos usen arreglos largos.

 Cuando el método cambia de manera impredecible de campos.

 Cuando las iteraciones sean la mejor opción

*recursión directa

Cuando un procedimiento incluye una llamada a sí mismo

*recursión indirecta

Cuando un procedimiento llama a otro procedimiento y éste causa que el procedimiento original sea invocado

*Recursión vs. Iteración¨

 Repetición

 Iteración: ciclo explícito (se expresa claramente)

 Recursión: repetidas invocaciones a método

Terminación

 Iteración: el ciclo termina o la condición del ciclo falla

 Recursión: se reconoce el caso base

-En ambos casos podemos tener ciclos infinitos

-Considerar que resulta más positivo para cada problema

LA RECURSIVIDAD SE DEBE USAR CUANDO SEA REALMENTE NECESARIA, ES DECIR, CUANDO NO EXISTA UNA SOLUCIÓN ITERATIVA SIMPLE.


Entradas relacionadas: