Documente Academic
Documente Profesional
Documente Cultură
TLAXIACO
Reporte de Unidad 1
ESTRUCTURA DE DATOS
Presenta:
Jorge Coronel López
La naturaleza de la recursividad es aquella que se llama así misma bien directamente, o bien a través
de otra función. En matemática existen numerosas funciones que tienen carácter recursivo de igual
modo numerosas circunstancias y situaciones de la vida ordinaria tienen carácter recursivo. Una
función que contiene sentencias entre las que se encuentran al menos una que llama a la propia
función se dice que es recursiva.
Cabe destacar, que una función en el campo de la informática son subprogramas o subrutina que
realizan una tarea específica y devuelve un valor, del mismo modo, se puede decir que esta
subrutina o subprograma forma parte del programa o rutina principal.
Definición de Recursividad
Existen numerosas definiciones de recursividad, algunas de las más importantes o sencillas son
éstas:
Los métodos para solucionar problemas recursivos tienen un número de elementos en común.
Cuando se hace la llamada a un método recursivo para resolver un problema, este método en
realidad es capaz de resolver sólo el(los) caso(s) más simple(s), o caso(s) base. Si se hace una llamada
al método con un caso base, el método devuelve un resultado. Si se hace una llamada al método
con un problema más complejo, éste divide el problema en dos piezas conceptuales: una que el
método sabe cómo resolver y la otra que no sabe cómo. Para que la recursividad sea factible, la
pieza que no se puede resolver debe ser similar al problema original, pero debe ser una versión un
poco más simple o pequeña de éste. Como este nuevo problema se ve igual que el problema original,
el método llama a una copia nueva de sí mismo para trabajar sobre el problema más pequeño; a
esto se le conoce como llamada recursiva y o paso de recursividad. Por lo general, el paso de
recursividad incluye una instrucción return, ya que su resultado se combinará con la porción del
problema que el método supo cómo resolver, para formar un resultado que se pasará de vuelta al
método original que hizo la llamada.
Un procedimiento o función se dice recursivo si durante su ejecución se invoca directa o
indirectamente, asimismo. Esta invocación depende al menos de una condición que actúa como
condición de corte que provoca la finalización de la recursión. El paso de recursividad se ejecuta
mientras la llamada original al método sigue estando activa (es decir, mientras no haya finalizado la
ejecución). El paso de recursividad puede originar muchas más llamadas recursivas, a medida que
el método divida cada nuevo subproblema en dos piezas conceptuales. Para que la recursividad
pueda terminar en un momento dado, cada vez que el método se llama a sí mismo con una versión
un poco más simple del problema original, la secuencia de problemas cada vez más pequeños debe
convergir en el caso base. En ese punto, el método reconoce el caso base y devuelve un resultado a
la copia anterior del método. Después se produce una secuencia de instrucciones return hasta que
la llamada original al método devuelve el resultado al método que hizo la llamada. Este proceso
suena complejo en comparación con la solución convencional de problemas que hemos realizado
hasta ahora.
Ámbito de aplicación
General.
Problemas cuya solución se puede hallar solucionando el mismo problema, pero con un
caso de menor tamaño.
Razones de uso:
Ventajas:
Desventajas:
Se tiene que diseñar: casos base, casos generales y la solución en términos de ellos.
Casos base: Son los casos del problema que resuelve con un segmento de código sin
recursividad.
El número y forma de los casos base son hasta cierto punto arbitrarios. La solución será
mejor cuanto más simple y eficiente resulte el conjunto de casos seleccionados.
Casos generales: Si el problema es suficientemente complejo, la solución se expresa, de
forma recursiva, como la unión de:
1. La solución de uno o más sub problemas de igual naturaleza, pero menor tamaño.
2. Un conjunto de pasos adicionales. Estos pasos junto con las soluciones a los sub
problemas componen la solución al problema general que queremos resolver.