Análisis y Diseño de Algoritmos - Algoritmos Recursivos
Análisis y Diseño de Algoritmos - Algoritmos Recursivos
Análisis y Diseño de Algoritmos - Algoritmos Recursivos
Algoritmos Recursivos
La recursividad es una tcnica fundamental en el diseo de
algoritmos eficientes, que est basada en la solucin de versiones
ms pequeas del problema, para obtener la solucin general del
mismo. Una instancia del problema se soluciona segn la solucin de
una o ms instancias diferentes y ms pequeas que ella.
Es una herramienta poderosa que sirve para resolver cierto tipo de
problemas reduciendo la complejidad y ocultando los detalles del
problema. Esta herramienta consiste en que una funcin o
procedimiento se llama a s mismo.
Una gran cantidad de algoritmos pueden ser descritos con mayor
claridad en trminos de recursividad, tpicamente el resultado ser
que sus programas sern ms pequeos.
La recursividad es una alternativa a la iteracin o repeticin, y aunque
en tiempo de computadora y en ocupacin en memoria es la solucin
recursiva menos eficiente que la solucin iterativa, existen numerosas
situaciones en las que la recursividad es una solucin simple y natural
a un problema que en caso contrario ser difcil de resolver. Por esta
razn se puede decir que la recursividad es una herramienta potente
y til en la resolucin de problemas que tengan naturaleza recursiva
y, por ende, en la programacin.
Existen numerosas definiciones de recursividad, algunas de las ms
importantes o sencillas son stas:
Desventajas:
Docente: Ing. MGQM
Contacto: [email protected]
Contacto: [email protected]
Contacto: [email protected]
1 si N = 1
suma(N) = { N + suma(N1) en caso contrario
Contacto: [email protected]
Contacto: [email protected]
Si b2 es cero, la solucin es b1
Si b2 no es cero, la solucin es mcd(b2, b1 mod b2).
Contacto: [email protected]
Dados A(m,n)
Entonces:
- n+1,
si m=0;
- A(m-1,1),
si m>0 y n=0;
- A(m-1, A(m,n-1)),
si m>0 y n>0;
La funcin crece rpidamente. Para darse una idea de la magnitud de
los valores que aparecen de la fila 4 en adelante, cuando m es igual a
4, se puede destacar que, por ejemplo, A(4,2) es mayor que el
nmero de partculas que forman el universo elevado a la potencia
200 y el resultado de A(5,2) no se puede escribir dado que no cabra
en el universo fsico. En general, por encima de la fila 4 ya no es
posible escribir todos los dgitos del resultado de la funcin.
La siguiente tabla muestra la complejidad de la funcin cuando los
valores se incrementan, el resultado de la funcin de Ackermann y el
nivel de profundidad que se alcanza cuando M y N toman ciertos
valores.
Contacto: [email protected]
Contacto: [email protected]
Contacto: [email protected]
Se debe considerar:
- Nro. De problema.
- Formulacin del problema.
- Cdigo C# (Copiado del VS, a colores, solo reducir el
tamao)
-
que aparezca la
barra de ttulo donde se muestra
de dnde se ejecuta el programa.
Pantallazo
de
ejecucin,
Contacto: [email protected]