Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Lab01 - Recursión y Eficiencia Algorítmica

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 1

Facultad de Ingeniería de Sistemas e Informática

LABORATORIO Nº 2
CURSO : Análisis y diseño de algoritmos
TEMA : Recursión y eficiencia algorítmica
DURACIÓN ESTIMADA : 01:40 horas.

I. OBJETIVOS
El presente laboratorio tiene por objetivos:
 Solucionar problemas mediante recursión y comparar su eficiencia con algoritmos recursivos.
II. ALGORITMOS RECURSIVOS
1. Solucione los siguientes problemas mediante algoritmos iterativos y con un contador analice
sus eficiencias:
a. Factorial de un número
{n >= 0}
función factorial (n: entero) retorna (fact: entero)
{fact = 1*2*3*4*…*n}
b. MCD de un número usando el algoritmo de Euclides
{n >= 0, m >= 0}
función máximoComúnDivisor (n,m:entero) retorna (mcd: entero)
{mcd es el máximo entero que divide a n y m}
c. El n-ésimo término Fibonacci (1, 1, 2, 3, 5, 8, 23, …)
{n >= 0}
función fibonacci(n:entero) retorna fib
{fib >= 1}
2. Mediante el uso de algoritmos recursivos solucione los siguientes problemas y mediante un
contador compare la eficiencia de cada uno con las soluciones iterativas:
a. Factorial de un número
{n >= 0}
función factorial (n: entero) retorna (fact: entero)
n = 0 => fact  1
n > 0 => fact  n * factorial(n-1)
{ fact = 1*2*3*4*…*n }
b. MCD de un número usando el algoritmo de Euclides
{n >= 0, m >= 0}
función máximoComúnDivisor (n,m:entero) retorna (mcd: entero)
n = m => mcd  n
n > m => mcd  máximoComúnDivisor (n-m, m)
n < m => mcd  máximoComúnDivisor (n, m-n)
{mcd es el máximo entero que divide a n y m}
c. El n-ésimo término Fibonacci (1, 1, 2, 3, 5, 8, 23, …)
{n >= 0}
función fibonacci(n: entero) retorna (fib: entero)
n <= 1=> fib  n
n > 1 => fib  fibonacci(n-1) + fibonacci(n-2)
{fib>=1}
3. Resuelva el problema de las torres de Hanoi mediante recursión.

respinozad@unmsm.edu.pe Pág. 1

También podría gustarte