Essays.club - Ensayos gratis, notas de cursos, notas de libros, tareas, monografías y trabajos de investigación
Buscar

Iteración vs Recursión

Enviado por   •  1 de Diciembre de 2018  •  1.115 Palabras (5 Páginas)  •  230 Visitas

Página 1 de 5

...

- Computadora DELL

- Intel® Core™ i5-3210M CPU @ 2.50GHz.

- Memoria Instalada (RAM): 6,00 GB (5.87 GB utilizables).

- Sistema operativo, Windows 10 Home edition.

- Sistema operativo de 64 bits, procesador x64.

- Netbeans IDE 8.1.

- Java, como lenguaje de programación para la investigación.

Proceso:

Para empezar el experimento de la investigación, se utilizó el lenguaje de programación Java, dentro del IDE, Netbeans. Se escribió 2 funciones para resolver el Factorial de un número, siendo uno de manera recursiva y la otra de manera Iterativa. Utilizando el método de System.nanoTime(); obtenía el tiempo de la computadora en nano segundos, y así obtenía el tiempo de ejecución de cada función, para saber cual era más eficiente.

- Se escogió el IDE Netbeans para realizar el experimento dentro del lenguaje Java.[pic 4][pic 5]

- Se creó un nuevo proyecto utilizando Java como lenguaje de programación.

[pic 6]

Ilustración 3. Creación del nuevo proyecto.

- Se escribió la función recursiva del factorial y la función iterativa del mismo factorial.

[pic 7]

Ilustración 4. Función factorial, recursiva e Iterativa

- Dentro del main del programa, se llamaban las funciones, y utilizando el System.nanoTime(); para obtener el tiempo inicial y el tiempo final, luego se restaban ambos tiempos y la diferencia de ellos era el tiempo de ejecución del programa.

[pic 8]

Ilustración 5. Main del programa

Resultados

En la siguiente gráfica se puede observar el tiempo de ejecución en nano segundos de cada algoritmo:

[pic 9]

Factorial

Iterativo

Recursivo

5

195002

300919

10

174065

181865

15

184739

179401

20

170370

188844

Durante las pruebas se pudo notar que el algoritmo iterativo es levemente más eficiente que el algoritmo recursivo del factorial.

---------------------------------------------------------------

Bibliografía

Delphin, J. (s.f.). webdelprofesor. Recuperado el 10 de 02 de 2017, de http://webdelprofesor.ula.ve/nucleotrujillo/jalejandro/Prog2/Unidad3.pdf

ProgrammerInterview.com. (s.f.). ProgrammerInterview.com. Recuperado el 10 de 02 de 2017, de http://www.programmerinterview.com/index.php/recursion/explanation-of-recursion/

Wikipedia. (s.f.). Wikipedia. Recuperado el 10 de 02 de 2017, de https://es.wikipedia.org/wiki/Iteraci%C3%B3n

Conclusión

El uso de un algoritmo recursivo es más consistente que un algoritmo iterativo, ya que dentro de un algoritmo recursivo solo hay una condición por cumplir, y en el caso del iterativo no, pero el uso de un algoritmo recursivo presenta varias desventajas; Un algoritmo recursivo resuelve el programa haciendo un llamado a sí mismo, pero eso involucra tiempo y memoria, ya que debe de utilizar mucha memoria de la pila de datos para poder encontrar la solución al problema, por lo tanto la recursiva no es útil para la resolución de problemas sencillos, como la sumatoria de un número, o encontrar el factorial de un número, y además que por el mayor uso de memoria de la pila de datos, la recursividad tiene un problema mayor que es denominado como: “Stack Overflow”, y eso hace que el programa “muera”, mientras que en un algoritmo iterativo no sucedería esto tan fácilmente.

Por lo tanto, la conclusión final de la investigación, es que hay que considerar el problema antes de implementar uno de los dos, porque puede que la solución iterativa o recursiva al problema no sea la más eficiente.

...

Descargar como  txt (7.7 Kb)   pdf (55.5 Kb)   docx (15.8 Kb)  
Leer 4 páginas más »
Disponible sólo en Essays.club