Escolar Documentos
Profissional Documentos
Cultura Documentos
Facultad de Ingeniera
Ingeniera en Computacion e Informatica
Diseno de Algoritmos
Ejercicios Resueltos - Analisis
Prof. Catedra: Carlos Contreras Bolton Fecha: 25 de Marzo de 2014
Profs. Laboratorio: Daniela Ubilla Felipe Reyes
Ejercicio 1: Sumatoria
n
X
i = 1 + 2 + 3 + ... + (n 1) + n (1)
i=1
n
X
i = n + (n 1) + ... + 3 + 2 + (2)
i=1
n
X
2 i = (1 + n) + (2 + (n 1)) + (3 + (n 2)) + ... + ((n 1) + 2) + (n + 1) (3)
i=1
n
X
2 i = (n + 1) + (n + 1) + (n + 1) + ... + (n + 1) + (n + 1) (4)
i=1
n
X
2 i = n(n + 1) (5)
i=1
Finalmente:
n
X n(n + 1)
i=
i=1
2
Diseno de Algoritmos Ejercicios Resueltos - Analisis
Ejercicio 2: Resolver
Resolver:
T (n) = T ( n) + c; T (1) = d; T (2) = d;
Expandimos:
T (n) = T ( n) + c
1
= T (n 2 ) + c
h 1 i
= T n 22 + c + c
1
= T n 22 + 2c
h 1 i
= T n 23 + c + 2c
1
= T n 23 + 3c
..
.
1
= T n 2k + kc
Continuamos:
1
= T n 2k + kc
= T (2) + kc
= d + c log2 log2 n
= O(log2 log2 n)
Ejercicio 3: Resolver
n
T (n) = 3 + n2 n; T (1) = 1 (1)
2
Expandimos:
n
T (n) = 3T ( ) + n2 n
2 2
n n 2 n n n n
= 3 3T + + n2 n = 9T +3 + n2 n
4 2 2 4 4 2
n 2 2
n n n n
= 27T +9 +3 + n2 n
8 16 4 4 2
..
.
n i1 i1
X 3 j X 3
= 3i T i
+ n 2
( ) + n ( )j
2 j=0
4 j=0
2
i i n
an+1 1
n
i 2 3 2 2 X
i
=3T 4n + 4n 2n + 2n por a =
2i 4 3 i=0
a1
..
.
n log n log n
log n 2 3 2 2
=3 T 4n + 4n 2n + 2n
2log n 4 3
= nlog 3 T (1) 4nlog 3 + 4n2 2nlog 3 + 2n
= 4n2 5nlog 3 + 2n
= O(n2 )
Ejercicio 4: Resolver
Usando el metodo de la sustitucion:
T (n) = 2T n2 + bn log n
n
T (n) = 2T ( ) + bn log n
2 n n
=2 c log + bn log n
2 2
= cn(log n log 2) + bn log n
= cn log n cn + bn log n
= cn log n (cn bn log n)
No se cumple, puesto que no podemos hacer que esta ultima lnea sea menor que cn log n
Entonces, adivinamos que O(n log2 n).
Probar T (n) cn log2 n por induccion.
n
T (n) = 2T ( ) + bn log n
2 n n
=2 c log2 + bn log n
2 2
= cn(log n log 2)2 + bn log n
= cn log2 n 2cn log n + cn + bn log n
= cn log2 n (2cn log n cn bn log n)
EjercicioP5: Resolver
1 n1
T (n) = n i=0 T (i) + cn, con T(0)=0.
n1
1X
T (n) = T (i) + cn (1)
n i=0
n1
X
nT (n) = T (i) + cn2 (2)
i=0
Desplazando (2) en n 1:
n2
X
(n 1)T (n 1) = T (i) + c(n 1)2 (3)
i=0
Restando (2)-(3):
n1
X n2
X
nT (n) (n 1)T (n 1) = ( T (i) T (i)) + (cn2 c(n 1)2 ) (4)
i=0 i=0
nT (n)(n1)T (n1) = ((T (0)+...+T (n2)+T (n1))(T (0)+...+T (n2)))+(cn2 c(n2 2n+1)) (5)
2cn c
T (n) = T (n 1) + (8)
n
Expandiendo:
2cn c
T (n) = + T (n 1)
n
2cn c 2c(n 1) c
= + + T (n 2)
n n1
2cn c 2c(n 1) c 2c(n 2) c
= + + + T (n 3)
n n1 n2
2cn c 2c(n 1) c 2c(n 2) c 2c(1) c
= + + + ... + + T (0)
n n1 n2 1
2cn 2c(n 1) 2c(n 2) 2c(1) c c c c
= + + + ... + + + + ... +
n n1 n2 1 n n1 n2 1
n
!
X 1
= (2c + 2c + 2c + ... + 2c) c
i=1
i
n
!
X 1
= 2cn c
i=1
i
= 2cn cHn
< 2cn
Ejercicio 6: Resolver
n1
2X
T (n) = n 1 + T (i), n 2. T (1) = 0 (1)
n i=1
n
2 X
T (n + 1) = (n + 1) 1 + T (i) (2)
n + 1 i=1
n1
X
nT (n) = n(n 1) + 2 T (i) (3)
i=1
n
X
(n + 1)T (n + 1) = (n + 1)n + 2 T (i) (4)
i=1
Restar (4)-(3):
n
X n1
X
(n + 1)T (n + 1) nT (n) = (n + 1)n n(n 1) + 2( T (i) T (i)) (5)
i=1 i=1
(n+1)T (n+1)nT (n) = 2n+2((T (0)+T (1)+...+T (n1)+T (n))(T (0)+T (1)+...+T (n1))) (6)
n+2 2n
T (n + 1) = T (n) + (n 2) (8)
n+1 n+1
Podemos simplificar 2n/(n + 1) como cota inferior 2.
n+2
T (n + 1) T (n) + 2 (9)
n+1
n+1
T (n) T (n 1) + 2 (10)
n
Expandiendo (10):
n+1
T (n) 2 + T (n 1)
n
n+1 n
=2+ 2+ T (n 2)
n n1
n+1 n n1
=2+ 2+ 2+ T (n 3)
n n1 n2
n+1 n n1 n2
=2+ 2+ 2+ 2+ T (n 4)
n n1 n2 n3
Hasta donde llega la expansion? hasta llegar a T (3) 34 T (2) + 2 = 2 + 43 ( 32 T (1) + 2), como T (1) = 0,
entonces T (3) 2 + 43 (2) (este es el motivo del 4/3 visto en el ejercicio en clases).
Continuando con la expansion:
n+1 n n1 n2 4
T (n) 2 + 2+ 2+ 2+ ..,2 + (2)
n n1 n2 n3 3
n+1 n+1 n n+1 n n1 n+1 n n1 4
=2 1+ + + + ... + ...
n n n1 n n1n2 n n1n2 3
n+1 n+1 n+1 n+1
=2 1+ + + + ... +
n n1 n2 3
1 1 1 1
= 2(n + 1) + + + ... +
n+1 n n1 3
1 1 1 1 1 1
= 2(n + 1) + + + ... + + + 1 +1
n+1 n n1 3 2 2
= 2(n + 1)(H(n + 1) 1, 5)
Recuerden que H(n) = 1 + 1/2 + 1/3 + ... + 1/n es la serie harmonica, la cual tiene una aproximacion
a H(n) = ln n + + O(1/n), donde = 0, 577.. es la constante de Euler. Entonces la solucion a T (n) es:
Ejercicio 7: Resolver
(
a if n = 1;
T (n) =
2T (n/4) + log n if n > 1.
n
T (n) = 2T + log n
4 n n n n
2
= 2 2T 2
+ log + log n = 2 T + 2 log + log n
4 n 4 42 4
n n
3
n 2
n n
= 2 2 2T + log + log + log n = 2 T + 2 log + 2 log + log n
43 42 4 43 42 4
= ...
n X i1 n n i1
X i1
X
= 2i T + log = 2i
T + log n 2k
2k log 4k
4i 4k 4i
k=0 k=0 k=0
Considerando n como potencia de 4 y todos los logaritmos en base 4 (la base no importa tanto, lo
importante es que es logaritmo) tenemos:
n i1
X i1
X
T (n) = 2i T + log4 n 2k 2k log4 4k
4i
k=0 k=0
= ...
i1
X i1
X
= 2i T (1) + log4 n 2k 2k k
k=0 k=0
= a2i + log4 n(2i 1) (i 2)2i 2
Ejercicio 8: Resolver
(
1 n=1
T (n) = Pn1
i=1 T (i) + n2 n2
n1
! n2
!
X X
T (n) T (n 1) = T (i) + n2 T (i) + (n 1)2
i=1 i=1
n2
! n2
!
X X
2 2
= T (i) + T (n 1) + n T (i) + n 2n + 1
i=1 i=1
= T (n 1) + 2n 1
Si despejamos tenemos:
T (n) = 2T (n 1) + 2n 1
Expandiendo la recurrencia:
T (n) = 2T (n 1) + 2n 1
= 2(2T (n 2) + 2(n 1) 1) + 2n 1
= 22 T (n 2) + 22 (n 1) 2 + 2n 1
= 22 (2T (n 3) + 2(n 2) 1) + 22 (n 1) 2 + 2n 1
= 23 T (n 3) + 23 (n 2) 22 + 22 (n 1) 2 + 2n 1
= 23 T (n 3) + (23 (n 2) + 22 (n 1) + 2n) (22 + 2 + 1)
= 23 T (n 3) + (23 (n 2) + 22 (n 1) + 21 (n 0)) (22 + 21 + 20 )
...
i1
X i1
X
= 2i T (n i) + 2j+1 (n j) 2j
j=0 j=0
i1
X i1
X i1
X
= 2i T (n i) + n 2j+1 j2j+1 2j
j=0 j=0 j=0
i1
X i1
X i1
X
= 2i T (n i) + 2n 2j 2 j2j 2j
j=0 j=0 j=0
...
i1
X i1
X
= 2i T (n i) + (2n 1) 2j 2 j2j
j=0 j=0
n2
X n2
X
n1 j
T (n) = 2 T (1) + (2n 1) 2 2 j2j
j=0 j=0
Considerando que:
n2
X
2j = 2n1 1
j=0
n2
X
j2j = (n 3)2n1 + 2
j=0
Reemplazando en la recurrencia: