Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATERIA:
ESTRUCTURA DE DATOS
SEMESTRE:
TERCER SEMESTRE
NÚMERO DE UNIDAD:
UNIDAD 2
DOCENTE:
DIONISIO PEREZ PEREZ
INDICE
INTRODUCCIÓN: .............................................................................................................3
2 - ¿Cuándo utilizar recursividad?....................................................................................................................... 3
DESARROLLO ..................................................................................................................4
3 - La pila de recursión ....................................................................................................................................... 5
CONCLUSIONES:..............................................................................................................7
BIBLIOGRAFÍA .................................................................................................................8
INTRODUCCIÓN:
Debemos tener mucho cuidado cuando realizamos llamadas recursivas ya que si la utilizamos
sin control podríamos desbordar la memoria del ordenador, causando que el programa se rompa.
2 - ¿Cuándo utilizar recursividad?
A pesar de ello en el mundo laboral no se utiliza demasiado, debido a que un error puede ser
trágico en la memoria, así como tener una lista con millones de datos, puede hacer que utiliza
mucha memoria. Aun así, la gran mayoría de las veces, utilizamos recursividad para algoritmos
de búsqueda u ordenación.
DESARROLLO
Ejemplo 1
*multiplicar todos los números entre dos enteros. En matemáticas se expresa con n! donde n es
el último número a comprobar. Debemos empezar desde el 1.
if (numero == 0) return 1;
Salida: entero.
if (n == 0)
return 1;
else
return fact(n – 1) * n ;
Es importante determinar un caso base, es decir un punto en el cual existe una condición por la
cual no se requiera volver a llamar a la misma función.
3 - La pila de recursión
1. Se reserva espacio en la pila para los parámetros de la función y sus variables locales.
2. Se guarda en la pila la dirección de la línea del código desde donde se ha llamado al
método.
3. Se almacenan los parámetros de la función y sus valores en la pila.
4. Finalmente se libera la memora asignada en la pila cuando la función termina y se vuelve
a la llamada de código original.
Ventajas
La recursión puede reducir la complejidad del tiempo.
Si sabe que su entrada en una función va a ser pequeña, entonces la recursión es sin duda una
buena opción. Sin embargo, si su entrada es lo suficientemente grande, el sacrificio de velocidad
y memoria en aras de la claridad se vuelve mucho menos funcional.
Una de las formas más eficientes de atravesar estos árboles cuando se busca una hoja (o nodo)
específica es siguiendo recursivamente una sola rama hasta el final de esa rama hasta que
encuentre el valor que está buscando.
Desventajas
La recursión utiliza más memoria.
Debido a que la función tiene que agregar a la pila con cada llamada recursiva y mantener los
valores allí hasta que finalice la llamada, la asignación de memoria es mayor que la de una función
iterativa.
En realidad, es bastante difícil escribir una función recursiva donde la velocidad y la memoria
serán menores que las de una función iterativa que completa la misma tarea.
Cuando un procedimiento llama a otro procedimiento y éste causa que el procedimiento original
sea invocado, se conoce como recursión indirecta
CONCLUSIONES:
https://es.slideshare.net/jessica_contreras/recursividad-34877278
https://ocw.bib.upct.es/pluginfile.php/7820/mod_resource/content/1/085_112_capitulo_6_RECURRENCIA.pdf
https://es.khanacademy.org/computing/computer-science/algorithms/recursive-algorithms/a/recursion
https://www.netmentor.es/entrada/Recursividad-programacion
https://definicionabc.com/recursividad/
INSTITUTO TECNOLÓGICO SUPERIOR DE ALVARADO
RÚBRICA DE EVALUACIÓN PARA REPORTE DE INVESTIGACIÓN
Carrera: ING. SISTEMAS COMPUTACIONALES Nombre de la asignatura:
Unidad: Tema:
NIVEL DE DESEMPEÑO*
DESEMPEÑO VALOR
CATEGORIA EXCELENTE NOTABLE BUENO SUFICIENTE
INSUFICIENT ALCANZADO
100% - 95% 94% - 85% 84% -75% 74% -70%
E NA
Contenido -- 50 %
Cumple con todos los aspectos solicitados por el docente:
introducción, objetivo general, objetivo específico, alcances, 0%
limitaciones, justificación, planteamiento del problema, hipótesis.
50%
Comprensión del tema -- 10 %
El estudiante escribe un aporte de lo que entendio en el texto, se
observa que el reporte favorece la comprensión del tema, 0%
retención y atención del estudiante .
10%
Nivel de abstracción -- 20 %
Centra su reporte de acuerdo a las ideas principales de la
investigación, tiene relación con lo que investigó. 0%
20%
Redacción -- 10 %
No hay errores de gramática, ortografía o puntuación. 0%
10%
Legibilidad -- 10 %
Esta escrito con letra de molde, legible, claridad en el texto y
limpieza. 0%
10%
Puntualidad
Se entrega en la fecha y hora programada.
FALSO
0% 0% -5% -10% -15% -20%
Tolerancia
Fecha, pero No se acepta
Fecha y hora Un día de Dos días de máxima
fuera de hora después de la
programada retraso retraso (tres días de
programada tolerancia
retraso)
OBTENIDO 0% TOTAL 0%