Tarea 2 de Análisis y Diseño de Algoritmos
Trimestre 2017 Invierno
Entrega: 31 de enero de 2017 en clase.
- Demuestra que f(n) = n está en O(2n).
- Demuestra que f(n) = 9999n+635 está en O(2n).
- Demuestra que f(n) = 2n está en O(n!).
- Resuelve exactamente la recurrencia T(1) = 4 y, para toda n ≥
2 que sea una potencia de 2, T(n) = 2T(n/2) + 3n + 2.
- Resuelve exactamente la recurrencia T(1) = 2 y, para toda n ≥
3 que sea una potencia de 3, T(n) = 4T(n/3) + 3n - 5.
- Resuelve exactamente la recurrencia T(1) = 1 y, para toda n ≥
2, T(n) = 1 + ∑i=1n-1
(T(i) + T(n-i)).
- Demuestra que el siguiente algoritmo iterativo de
exponenciación es correcto, es decir, debe regresar yz:
power(y,z)
x := 1
while (z > 0) do
if (z es impar) then x := x*y
z := z/2
y := y2
return (x)
- Demuestra que el siguiente algoritmo recursivo de
exponenciación es correcto, es decir, debe regresar yz:
power(y,z)
if (z = 0) return (1)
if (z es impar) then return (power(y2,z/2)*y)
else return (power(y2,z/2))
- Analiza el algoritmo iterativo de exponenciación de la
pregunta 7. ¿Cuántas veces se hace la multiplicación x :=
x*y en el peor de los casos?
- Analiza el algoritmo recursivo de exponenciación de la
pregunta 8. ¿Cuántas veces se hace la multiplicación power(y2,z/2)*y
en el peor de los casos?
Nota 1: En las preguntas 7 y 8, la división z/2 es la
división entera.
Nota 2: No olvides registrarte ya en OmegaUp.
Cuando lo hagas, envía un correo a zelzin@azc.uam.mx con tu
matrícula, nombre completo y usuario.