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.