Está en la página 1de 7

ESCUELA POLITÉCNICA NACIONAL

FACULTAD DE INGENIERÍA DE
SISTEMAS

ESTRUCTURA DE DATOS (ICCR363)


GRUPO: No. 9
INFORME No: Taller 2 2B
Alumno:
 Carlos Calva
 Edison Quimbiamba
 Jonathan Tejada
 Jeremy Alvarez
PROFESORA: María Pérez

FECHA DE ENTREGA: 11/06/2019


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

GUIA PARA LA ELABORACIÓN DE INFORMES DE LABORATORIO

El siguiente documento es una guía para la elaboración de Informes de Laboratorio. Su objetivo


es explicar qué puntos tendría y qué debe ir en cada uno.

Encabezado:

ESCUELA POLITÉCNICA NACIONAL


FACULTAD DE INGENIERÍA DE SISTEMAS
CARRERA DE INGENIERIA EN SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

Laboratorio de:

Estructura de Datos SIC334

Práctica No.:

Cuarta Práctica

Tema:

Algoritmos de Recursión Simple

Ejercicios

Parte A:
1.¿Qué es la recursividad infinita?

La recursividad infinita es una recursión en donde nunca se llega al caso básico y por ende este
proceso se repite varias veces hasta que la computadora se quede sin recursos.

2. ¿Cuando se necesita un caso base en el procesamiento recursivo?

Usamos recursividad cuando cuando una solución iterativa no sea posible.


Es favorables usar recursividad cuando la ejecución y eficiencia de memoria estén dentro de los
límites aceptables.
la solución recursiva requerirá más tiempo y espacio debido a las llamadas de los métodos pero
reduce el tiempo de mantenimiento de código.
En algunos problemas la recursión conduce a soluciones que son fáciles de leer y comprender
su alternativa, iterativa.

3. ¿ Es necesaria la recursión ?

El poder de la recursión evidentemente se fundamental en la posibilidad de definir un conjunto


finito de objetos con una sola declaración finita, igualmente, un número infinito de operaciones
computacionales puede describirse con un programa recursivo finito, incluso en el caso de que
este programa no contenga repeticiones explícitas.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

4. ¿Cuando hay que evitar la recursividad?

A pesar de ese una técnica muy elegante al momento de programar la recursión no siempre es
la mejor opción en términos de rendimiento pues implica ejecutar las misma función cada
interacción del problema, teniendo que evaluar todos los pasos de la función. Por eso es
recomendable tomar en cuenta los recursos con los que contamos.

5. ¿Que es la recursión indirecta ?


Una recursión indirecta es cuando el método A de un subprograma P se lo invoca en el método
B de un subprograma Q, usando la modularidad en la programación.

Parte B:

1. Implementa la solución iterativa para calcular números factoriales.

2. Implementa ahora la solución recursiva para los números factoriales.


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

 Comprueba su funcionamiento incluyendo el código apropiado en el método main.

4.Compara los tiempos de ejecución para las soluciones iterativa y recursiva. Para ello, puedes
utilizar el método System.currentTimeMillis, que devuelve el tiempo en milisegundos. Investigue
en la API, las opciones.

Podemos observar que el recursivo tiene un mayor costo computacional

4.Haga lo mismo para para el caso de las potencias de un número.


ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

5.Descubra otros ejemplos en: http://mathworld.wolfram.com/

Objetivos:
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

 Entender el funcionamiento interno de estas estructuras de datos denominadas recursidad.


 Resolver la secuencia del algoritmo de cada problema planteado en clase y ver la lógica de
su funcionamiento interno.
 Implementar los diferentes algoritmos propuestos en clase cuya estructura es basada en
una recursión simple.
 Evaluar los resultados obtenidos y verificar su funcionamiento al obtener la respuesta.
 Resolver los problemas de 5.1 y 5.2 del libro “Joyanes” del capítulo de recursividad,
verificando la lógica del algoritmo y su implementación.

Análisis de resultados:
 Podemos observar que el tiempo de ejecución de algoritmo interactivo es menor para el
caso del factorial y el base de potencias, en este caso ocurre debido a que solo se invoca en
un método desde el main pero en caso de llamar el mismo método varias veces ya
representa un coste computacional.

Conclusiones y recomendaciones:

 Los algoritmos de recursividad dan paso a la programación modular la cual es muy sencilla
de modificar y entendible.
 Todas las operaciones matemáticas pueden convertirse en recursivas, pero esto depende
de los recursos que tengamos a mano de implementarlos o no en el desarrollo de software.

Bibliografía:

[1]. Cairo Osvaldo, Guardati Silvia, Estructura de datos, ISBN: 970105908-5, Tercera Edición
2006. [Online]. Disponible en:
https://drive.google.com/file/d/0B_XimPSyUDLcM2ZtU3VCVHhLUUk/edit?pref=2&pli
=1
[2]. Estructura de Datos en Java, JOYANES Luis, ZAHONERO Ignacio, eISBN:
9788448173937, Edición 2008.
[3]. Estructura de Datos, GARCIA Ivan, GARCIA Magariño, ISBN: 8445419358 ISBN-13,
Edición 2011

Complementaria:
[4]. Estructura de datos, CAIRO Osvaldo, GUARDATI Silvia, ISBN 970-10-0258-X, Edición
1993
Otras
[5]. Recursividad. [Online]. Disponible en:
http://www.lcc.uma.es/~alvarezp/pm/recursividad.pdf
Colocar otras bibliografías en caso de ser necesarias.
ESCUELA POLITÉCNICA NACIONAL
FACULTAD DE INGENIERÍA DE SISTEMAS
INGENIERÍA DE SISTEMAS INFORMÁTICOS Y DE COMPUTACIÓN

También podría gustarte