SlideShare una empresa de Scribd logo
Universidad Andr´es Bello
Facultad de Ingenier´ıa
Ingenier´ıa en Computaci´on e Inform´atica
Dise˜no de Algoritmos
Ejercicios Resueltos - An´alisis
Prof. C´atedra: Carlos Contreras Bolton Fecha: 25 de Marzo de 2014
Profs. Laboratorio: Daniela Ubilla – Felipe Reyes
Ejercicio 1: Sumatoria
n
i=1
i = 1 + 2 + 3 + ... + (n − 1) + n (1)
Si invertimos la suma tenemos:
n
i=1
i = n + (n − 1) + ... + 3 + 2 + (2)
Si sumamos componente a componente (1) y (2) tenemos:
2
n
i=1
i = (1 + n) + (2 + (n − 1)) + (3 + (n − 2)) + ... + ((n − 1) + 2) + (n + 1) (3)
Que es lo mismo que:
2
n
i=1
i = (n + 1) + (n + 1) + (n + 1) + ... + (n + 1) + (n + 1) (4)
La parte derecha est´a compuesta por n sumas de n + 1:
2
n
i=1
i = n(n + 1) (5)
Finalmente:
n
i=1
i =
n(n + 1)
2
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
Ejercicio 2: Resolver
Resolver:
T(n) = T(
√
n) + c; T(1) = d; T(2) = d;
Expandimos:
T(n) = T(
√
n) + c
= T(n
1
2 ) + c
= T n
1
22
+ c + c
= T n
1
22
+ 2c
= T n
1
23
+ c + 2c
= T n
1
23
+ 3c
...
= T n
1
2k
+ kc
Expandimos hasta T(2), entonces:
n
1
2k
= 2
2k√
n = 2
n = 22k
2k
= log2 n
k = log2 log2 n
Continuamos:
= T n
1
2k
+ kc
= T(2) + kc
= d + c log2 log2 n
= O(log2 log2 n)
Carlos Contreras Bolton
2
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
Ejercicio 3: Resolver
T(n) = 3
n
2
+ n2
− n; T(1) = 1 (1)
Expandimos:
T(n) = 3T(
n
2
) + n2
− n
= 3 3T
n
4
+
n
2
2
−
n
2
+ n2
− n = 9T
n
4
+ 3
n2
4
−
n
2
+ n2
− n
= 27T
n
8
+ 9
n2
16
−
n
4
+ 3
n2
4
−
n
2
+ n2
− n
...
= 3i
T
n
2i
+ n2
i−1
j=0
(
3
4
)j
+ n
i−1
j=0
(
3
2
)j
= 3i
T
n
2i
− 4n2 3
4
i
+ 4n2
− 2n
2
3
i
+ 2n por
n
i=0
ai
=
an+1
− 1
a − 1
...
= 3log n
T
n
2log n
− 4n2 3
4
log n
+ 4n2
− 2n
2
3
log n
+ 2n
= nlog 3
T(1) − 4nlog 3
+ 4n2
− 2nlog 3
+ 2n
= 4n2
− 5nlog 3
+ 2n
= O(n2
)
Carlos Contreras Bolton
3
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
Ejercicio 4: Resolver
Usando el m´etodo de la sustituci´on:
T(n) = 2T n
2 + bn log n
Adivinamos que O(n log n).
Probar T(n) ≤ cn log n por inducci´on.
T(n) = 2T(
n
2
) + bn log n
= 2 c
n
2
log
n
2
+ bn log n
= 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 l´ınea sea menor que cn log n
Entonces, adivinamos que O(n log2
n).
Probar T(n) ≤ cn log2
n por inducci´on.
T(n) = 2T(
n
2
) + bn log n
= 2 c
n
2
log2 n
2
+ bn log n
= 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)
Si c > b. Por lo tanto, T(n) = n log2
n.
Carlos Contreras Bolton
4
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
Ejercicio 5: Resolver
T(n) = 1
n
n−1
i=0 T(i) + cn, con T(0)=0.
T(n) =
1
n
n−1
i=0
T(i) + cn (1)
Multiplicar por n en (1):
nT(n) =
n−1
i=0
T(i) + cn2
(2)
Desplazando (2) en n − 1:
(n − 1)T(n − 1) =
n−2
i=0
T(i) + c(n − 1)2
(3)
Restando (2)-(3):
nT(n) − (n − 1)T(n − 1) = (
n−1
i=0
T(i) −
n−2
i=0
T(i)) + (cn2
− c(n − 1)2
) (4)
nT(n)−(n−1)T(n−1) = ((T(0)+...+T(n−2)+T(n−1))−(T(0)+...+T(n−2)))+(cn2
−c(n2
−2n+1)) (5)
nT(n) − (n − 1)T(n − 1) = T(n − 1) + 2cn − c (6)
nT(n) = nT(n − 1) + 2cn − c (7)
Dividiendo (7) por n:
T(n) = T(n − 1) +
2cn − c
n
(8)
Expandiendo:
T(n) =
2cn − c
n
+ T(n − 1)
=
2cn − c
n
+
2c(n − 1) − c
n − 1
+ T(n − 2)
=
2cn − c
n
+
2c(n − 1) − c
n − 1
+
2c(n − 2) − c
n − 2
+ T(n − 3)
=
2cn − c
n
+
2c(n − 1) − c
n − 1
+
2c(n − 2) − c
n − 2
+ ... +
2c(1) − c
1
+ T(0)
=
2cn
n
+
2c(n − 1)
n − 1
+
2c(n − 2)
n − 2
+ ... +
2c(1)
1
−
c
n
+
c
n − 1
+
c
n − 2
+ ... +
c
1
= (2c + 2c + 2c + ... + 2c) − c
n
i=1
1
i
= 2cn − c
n
i=1
1
i
= 2cn − cHn
< 2cn
Por lo tanto, T(n) = O(n).
Carlos Contreras Bolton
5
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
Ejercicio 6: Resolver
T(n) = n − 1 +
2
n
n−1
i=1
T(i), n ≥ 2. T(1) = 0 (1)
Re-escribir la recurrencia para n + 1:
T(n + 1) = (n + 1) − 1 +
2
n + 1
n
i=1
T(i) (2)
Multiplicar (1) por n y (2) por n + 1:
nT(n) = n(n − 1) + 2
n−1
i=1
T(i) (3)
(n + 1)T(n + 1) = (n + 1)n + 2
n
i=1
T(i) (4)
Restar (4)-(3):
(n + 1)T(n + 1) − nT(n) = (n + 1)n − n(n − 1) + 2(
n
i=1
T(i) −
n−1
i=1
T(i)) (5)
(n+1)T(n+1)−nT(n) = 2n+2((T(0)+T(1)+...+T(n−1)+T(n))−(T(0)+T(1)+...+T(n−1))) (6)
(n + 1)T(n + 1) − nT(n) = 2n + 2T(n) (7)
T(n + 1) =
n + 2
n + 1
T(n) +
2n
n + 1
(n ≥ 2) (8)
Podemos simplificar 2n/(n + 1) como cota inferior 2.
T(n + 1) ≤
n + 2
n + 1
T(n) + 2 (9)
T(n) ≤
n + 1
n
T(n − 1) + 2 (10)
Expandiendo (10):
T(n) ≤ 2 +
n + 1
n
T(n − 1)
= 2 +
n + 1
n
2 +
n
n − 1
T(n − 2)
= 2 +
n + 1
n
2 +
n
n − 1
2 +
n − 1
n − 2
T(n − 3)
= 2 +
n + 1
n
2 +
n
n − 1
2 +
n − 1
n − 2
2 +
n − 2
n − 3
T(n − 4)
¿Hasta d´onde llega la expansi´on? hasta llegar a T(3) ≤ 4
3 T(2)+2 = 2+ 4
3 (3
2 T(1)+2), como T(1) = 0,
entonces T(3) ≤ 2 + 4
3 (2) (este es el motivo del 4/3 visto en el ejercicio en clases).
Continuando con la expansi´on:
Carlos Contreras Bolton
6
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
T(n) ≤ 2 +
n + 1
n
2 +
n
n − 1
2 +
n − 1
n − 2
2 +
n − 2
n − 3
..,2 +
4
3
(2)
= 2 1 +
n + 1
n
+
n + 1
n
n
n − 1
+
n + 1
n
n
n − 1
n − 1
n − 2
+ ... +
n + 1
n
n
n − 1
n − 1
n − 2
...
4
3
= 2 1 +
n + 1
n
+
n + 1
n − 1
+
n + 1
n − 2
+ ... +
n + 1
3
= 2(n + 1)
1
n + 1
+
1
n
+
1
n − 1
+ ... +
1
3
= 2(n + 1)
1
n + 1
+
1
n
+
1
n − 1
+ ... +
1
3
+
1
2
+ 1 −
1
2
+ 1
= 2(n + 1)(H(n + 1) − 1, 5)
Recuerden que H(n) = 1+1/2+1/3+...+1/n es la serie harm´onica, la cual tiene una aproximaci´on
a H(n) = ln n + γ + O(1/n), donde γ = 0, 577.. es la constante de Euler. Entonces la soluci´on a T(n) es:
T(n) ≤ 2(n + 1)(ln n + γ − 1, 5) + O(1) = O(n log n)
Carlos Contreras Bolton
7
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
Ejercicio 7: Resolver
T(n) =
a if n = 1;
2T(n/4) + log n if n > 1.
T(n) = 2T
n
4
+ log n
= 2 2T
n
42
+ log
n
4
+ log n = 22
T
n
42
+ 2 log
n
4
+ log n
= 2 2 2T
n
43
+ log
n
42
+ log
n
4
+ log n = 23
T
n
43
+ 22
log
n
42
+ 2 log
n
4
+ log n
= ...
= 2i
T
n
4i
+
i−1
k=0
log
n
4k
= 2i
T
n
4i
+ log n
i−1
k=0
2k
−
i−1
k=0
2k
log 4k
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:
T(n) = 2i
T
n
4i
+ log4 n
i−1
k=0
2k
−
i−1
k=0
2k
log4 4k
= ...
= 2i
T (1) + log4 n
i−1
k=0
2k
−
i−1
k=0
2k
k
= a2i
+ log4 n(2i
− 1) − (i − 2)2i
− 2
Considerando que n es potencia de 4, entonces n = 4i
e i = log4 n. Tambi´en podemos obtener que√
n = 2i
.
T(n) = a2i
+ log4 n(2i
− 1) − (i − 2)2i
− 2
= a
√
n + log4 n(
√
n − 1) − (log4 n − 2)
√
n − 2
= (a + 2)
√
n − log4 n − 2
Por lo tanto T(n) = Θ(
√
n).
Carlos Contreras Bolton
8
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
Ejercicio 8: Resolver
T(n) =
1 n = 1
n−1
i=1 T(i) + n2
n ≥ 2
Si restamos T(n − 1) a T(n) tenemos:
T(n) − T(n − 1) =
n−1
i=1
T(i) + n2
−
n−2
i=1
T(i) + (n − 1)2
=
n−2
i=1
T(i) + T(n − 1) + n2
−
n−2
i=1
T(i) + n2
− 2n + 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
)
...
= 2i
T(n − i) +
i−1
j=0
2j+1
(n − j) −
i−1
j=0
2j
= 2i
T(n − i) + n
i−1
j=0
2j+1
−
i−1
j=0
j2j+1
−
i−1
j=0
2j
= 2i
T(n − i) + 2n
i−1
j=0
2j
− 2
i−1
j=0
j2j
−
i−1
j=0
2j
...
= 2i
T(n − i) + (2n − 1)
i−1
j=0
2j
− 2
i−1
j=0
j2j
Al caso base se llega cuando n − i = 1, entonces i = n − 1:
T(n) = 2n−1
T(1) + (2n − 1)
n−2
j=0
2j
− 2
n−2
j=0
j2j
Considerando que:
Carlos Contreras Bolton
9
Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis
n−2
j=0
2j
= 2n−1
− 1
n−2
j=0
j2j
= (n − 3)2n−1
+ 2
Reemplazando en la recurrencia:
T(n) = 2n−1
+ (2n − 1)(2n−1
− 1) − 2((n − 3)2n−1
+ 2)
= (1 + 2n − 1 − 2n + 6)2n−1
− 2n + 1 − 4
= 6 · 2n−1
− 2n − 3
= 3 · 2n
− 2n − 3
∈ Θ(2n
)
Carlos Contreras Bolton
10

Más contenido relacionado

La actualidad más candente

Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
Mariela Cabezas
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
Evans Balcazar
 
Recursividad
RecursividadRecursividad
Recursividad
betzy
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
Marcelo Herrera
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regularesKenia Adams
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosAbimael hernandez
 
Recursividad (Divide y Vencerás)
Recursividad (Divide y Vencerás)Recursividad (Divide y Vencerás)
Recursividad (Divide y Vencerás)
Lester Sanchez
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el MejorTutor4uDev
 
Ejercicios packet tracer_completo_2014
Ejercicios packet tracer_completo_2014Ejercicios packet tracer_completo_2014
Ejercicios packet tracer_completo_2014
Dario Esquina
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
Marialix Quintero
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividadrehoscript
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
Juan Anaya
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamientoOrlando Torres
 
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
Luis Alfredo Moctezuma Pascual
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
Johnny Paucar
 

La actualidad más candente (20)

Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Recursividad
RecursividadRecursividad
Recursividad
 
5. Ejercicios normalización
5. Ejercicios normalización5. Ejercicios normalización
5. Ejercicios normalización
 
Lenguajes regulares
Lenguajes regularesLenguajes regulares
Lenguajes regulares
 
Mecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmosMecanismos de exclusion mutua y algoritmos
Mecanismos de exclusion mutua y algoritmos
 
Ppt algoritmo
Ppt algoritmoPpt algoritmo
Ppt algoritmo
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Recursividad (Divide y Vencerás)
Recursividad (Divide y Vencerás)Recursividad (Divide y Vencerás)
Recursividad (Divide y Vencerás)
 
Búsqueda Primero el Mejor
Búsqueda Primero el MejorBúsqueda Primero el Mejor
Búsqueda Primero el Mejor
 
Colas
ColasColas
Colas
 
Ejercicios packet tracer_completo_2014
Ejercicios packet tracer_completo_2014Ejercicios packet tracer_completo_2014
Ejercicios packet tracer_completo_2014
 
Apuntadores y listas
Apuntadores y listasApuntadores y listas
Apuntadores y listas
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
Ordenamiento por insercion
Ordenamiento por insercionOrdenamiento por insercion
Ordenamiento por insercion
 
Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.Unidad 6 Protección y seguridad.
Unidad 6 Protección y seguridad.
 
Algoritmos de ordenamiento
Algoritmos de ordenamientoAlgoritmos de ordenamiento
Algoritmos de ordenamiento
 
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...El problema del agente viajero resuelto por fuerza, programación dinámica y v...
El problema del agente viajero resuelto por fuerza, programación dinámica y v...
 
Arreglos c++
Arreglos c++Arreglos c++
Arreglos c++
 

Destacado

21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltosRoldan El Gato
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmos
Jaro
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
Rolf Pinto
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de AlgoritmosPepe Xdsasda
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS1002pc3
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
epetekaun
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmosmarshalleitor
 
Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmos
Sergio Ormeño
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
José Juan Herrera
 
Elaboracion de algoritmos
Elaboracion de algoritmosElaboracion de algoritmos
Elaboracion de algoritmos
Ballbreakerhouse .
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)irvingsalazar2
 
Algoritmo impresora
Algoritmo impresoraAlgoritmo impresora
Algoritmo impresora
pctechnical
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmosjuanmonsalve001
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
Esteban Andres Diaz Mina
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmoGaston Demundo
 

Destacado (20)

21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos21 problemas de algoritmo resueltos
21 problemas de algoritmo resueltos
 
Manual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmosManual de análisis y diseño de algoritmos
Manual de análisis y diseño de algoritmos
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
Complejidad Computacional
Complejidad ComputacionalComplejidad Computacional
Complejidad Computacional
 
Ejemplos de Algoritmos
Ejemplos de AlgoritmosEjemplos de Algoritmos
Ejemplos de Algoritmos
 
EJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOSEJERCICIOS DE ALGORITMOS
EJERCICIOS DE ALGORITMOS
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Resumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de AlgoritmosResumen Complejidad Computacional y de Algoritmos
Resumen Complejidad Computacional y de Algoritmos
 
Complejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmosComplejidad de los algoritmos | Análisis de algoritmos
Complejidad de los algoritmos | Análisis de algoritmos
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 
EVALUACION DE ALGORTIMOS
EVALUACION DE ALGORTIMOSEVALUACION DE ALGORTIMOS
EVALUACION DE ALGORTIMOS
 
Elaboracion de algoritmos
Elaboracion de algoritmosElaboracion de algoritmos
Elaboracion de algoritmos
 
Solución de problemas con algoritmos
Solución de problemas con algoritmosSolución de problemas con algoritmos
Solución de problemas con algoritmos
 
Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)Diagramas de Flujo y Algoritmos (Informática ll)
Diagramas de Flujo y Algoritmos (Informática ll)
 
Algoritmo impresora
Algoritmo impresoraAlgoritmo impresora
Algoritmo impresora
 
Ejercicios de algoritmos
Ejercicios de algoritmosEjercicios de algoritmos
Ejercicios de algoritmos
 
Complejidad de algoritmos
Complejidad de algoritmosComplejidad de algoritmos
Complejidad de algoritmos
 
Analisis Algoritmo
Analisis AlgoritmoAnalisis Algoritmo
Analisis Algoritmo
 
Análisis de algoritmo
Análisis de algoritmoAnálisis de algoritmo
Análisis de algoritmo
 
Complejidad de Algoritmos
Complejidad de AlgoritmosComplejidad de Algoritmos
Complejidad de Algoritmos
 

Similar a ejercicios resueltos análisis de algoritmos

Solucionario Tercera Práctica Calificada de Matemática V - FIEE UNI
Solucionario Tercera Práctica Calificada de Matemática V - FIEE UNISolucionario Tercera Práctica Calificada de Matemática V - FIEE UNI
Solucionario Tercera Práctica Calificada de Matemática V - FIEE UNI
Andy Juan Sarango Veliz
 
Za areabajocurva m1152
Za areabajocurva m1152Za areabajocurva m1152
Za areabajocurva m1152
Juan Paez
 
Recursividad
RecursividadRecursividad
Recursividad
britkarem
 
Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01TEOFILO PARQUI
 
Integración por sustitución
Integración por sustituciónIntegración por sustitución
Integración por sustitución
Erick Guaman
 
Problemas resueltos7
Problemas resueltos7Problemas resueltos7
Problemas resueltos7
bernabe rosado
 
Recurrencias
RecurrenciasRecurrencias
Solucionario matematica 5
Solucionario matematica 5Solucionario matematica 5
Solucionario matematica 5
Consul Har
 
Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01
Consul Har
 
Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01
Consul Har
 
Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos
Joe Arroyo Suárez
 
Sucesiones y series
Sucesiones y seriesSucesiones y series
Sucesiones y series
ALLPARUNA
 
Métodos dinámicos en economía - héctor ortega
Métodos dinámicos en economía - héctor ortegaMétodos dinámicos en economía - héctor ortega
Métodos dinámicos en economía - héctor ortega
2806198620022011
 
Tarea ecuaciones diferenciales
Tarea ecuaciones diferencialesTarea ecuaciones diferenciales
Tarea ecuaciones diferenciales
SalMndez5
 
Solucionario de-lomeli
Solucionario de-lomeliSolucionario de-lomeli
Solucionario de-lomeli
JHONATANSANCHEZURBAN
 
Subirblog
SubirblogSubirblog
Subirblog2
Subirblog2Subirblog2
Taller de metodos
Taller de metodosTaller de metodos
Taller de metodos
Markinho Jarava
 
Personales.upv.es aperis docencia_int_linea
Personales.upv.es aperis docencia_int_lineaPersonales.upv.es aperis docencia_int_linea
Personales.upv.es aperis docencia_int_linea
Ruben Matamoros Urrutea
 
Tomo II: Problema 64
Tomo II: Problema 64Tomo II: Problema 64
Tomo II: Problema 64
carlos21gt
 

Similar a ejercicios resueltos análisis de algoritmos (20)

Solucionario Tercera Práctica Calificada de Matemática V - FIEE UNI
Solucionario Tercera Práctica Calificada de Matemática V - FIEE UNISolucionario Tercera Práctica Calificada de Matemática V - FIEE UNI
Solucionario Tercera Práctica Calificada de Matemática V - FIEE UNI
 
Za areabajocurva m1152
Za areabajocurva m1152Za areabajocurva m1152
Za areabajocurva m1152
 
Recursividad
RecursividadRecursividad
Recursividad
 
Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01
 
Integración por sustitución
Integración por sustituciónIntegración por sustitución
Integración por sustitución
 
Problemas resueltos7
Problemas resueltos7Problemas resueltos7
Problemas resueltos7
 
Recurrencias
RecurrenciasRecurrencias
Recurrencias
 
Solucionario matematica 5
Solucionario matematica 5Solucionario matematica 5
Solucionario matematica 5
 
Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01
 
Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01Solucionario5tosecundaria1 110429080504-phpapp01
Solucionario5tosecundaria1 110429080504-phpapp01
 
Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos Series de fourier - Ejemplos Resueltos
Series de fourier - Ejemplos Resueltos
 
Sucesiones y series
Sucesiones y seriesSucesiones y series
Sucesiones y series
 
Métodos dinámicos en economía - héctor ortega
Métodos dinámicos en economía - héctor ortegaMétodos dinámicos en economía - héctor ortega
Métodos dinámicos en economía - héctor ortega
 
Tarea ecuaciones diferenciales
Tarea ecuaciones diferencialesTarea ecuaciones diferenciales
Tarea ecuaciones diferenciales
 
Solucionario de-lomeli
Solucionario de-lomeliSolucionario de-lomeli
Solucionario de-lomeli
 
Subirblog
SubirblogSubirblog
Subirblog
 
Subirblog2
Subirblog2Subirblog2
Subirblog2
 
Taller de metodos
Taller de metodosTaller de metodos
Taller de metodos
 
Personales.upv.es aperis docencia_int_linea
Personales.upv.es aperis docencia_int_lineaPersonales.upv.es aperis docencia_int_linea
Personales.upv.es aperis docencia_int_linea
 
Tomo II: Problema 64
Tomo II: Problema 64Tomo II: Problema 64
Tomo II: Problema 64
 

Último

EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
PABLOCESARGARZONBENI
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
jjfch3110
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
cj3806354
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
thomasdcroz38
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
JulyMuoz18
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
44652726
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
JuanPrez962115
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
Leidyfuentes19
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
rafaelsalazar0615
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
CrystalRomero18
 

Último (20)

EduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clasesEduFlex, una educación accesible para quienes no entienden en clases
EduFlex, una educación accesible para quienes no entienden en clases
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdfTrabajo Coding For kids 1 y 2 grado 9-4.pdf
Trabajo Coding For kids 1 y 2 grado 9-4.pdf
 
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdfTRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
TRABAJO DESARROLLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5Conceptos Básicos de Programación L.D 10-5
Conceptos Básicos de Programación L.D 10-5
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
Robótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptxRobótica educativa para la eduacion primaria .pptx
Robótica educativa para la eduacion primaria .pptx
 
Alan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentaciónAlan Turing Vida o biografía resumida como presentación
Alan Turing Vida o biografía resumida como presentación
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptxleidy fuentes - power point -expocccion -unidad 4 (1).pptx
leidy fuentes - power point -expocccion -unidad 4 (1).pptx
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
Diagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestreDiagrama de flujo soporte técnico 5to semestre
Diagrama de flujo soporte técnico 5to semestre
 
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTALINFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
INFORME DE LAS FICHAS.docx.pdf LICEO DEPARTAMENTAL
 

ejercicios resueltos análisis de algoritmos

  • 1. Universidad Andr´es Bello Facultad de Ingenier´ıa Ingenier´ıa en Computaci´on e Inform´atica Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Prof. C´atedra: Carlos Contreras Bolton Fecha: 25 de Marzo de 2014 Profs. Laboratorio: Daniela Ubilla – Felipe Reyes Ejercicio 1: Sumatoria n i=1 i = 1 + 2 + 3 + ... + (n − 1) + n (1) Si invertimos la suma tenemos: n i=1 i = n + (n − 1) + ... + 3 + 2 + (2) Si sumamos componente a componente (1) y (2) tenemos: 2 n i=1 i = (1 + n) + (2 + (n − 1)) + (3 + (n − 2)) + ... + ((n − 1) + 2) + (n + 1) (3) Que es lo mismo que: 2 n i=1 i = (n + 1) + (n + 1) + (n + 1) + ... + (n + 1) + (n + 1) (4) La parte derecha est´a compuesta por n sumas de n + 1: 2 n i=1 i = n(n + 1) (5) Finalmente: n i=1 i = n(n + 1) 2
  • 2. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Ejercicio 2: Resolver Resolver: T(n) = T( √ n) + c; T(1) = d; T(2) = d; Expandimos: T(n) = T( √ n) + c = T(n 1 2 ) + c = T n 1 22 + c + c = T n 1 22 + 2c = T n 1 23 + c + 2c = T n 1 23 + 3c ... = T n 1 2k + kc Expandimos hasta T(2), entonces: n 1 2k = 2 2k√ n = 2 n = 22k 2k = log2 n k = log2 log2 n Continuamos: = T n 1 2k + kc = T(2) + kc = d + c log2 log2 n = O(log2 log2 n) Carlos Contreras Bolton 2
  • 3. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Ejercicio 3: Resolver T(n) = 3 n 2 + n2 − n; T(1) = 1 (1) Expandimos: T(n) = 3T( n 2 ) + n2 − n = 3 3T n 4 + n 2 2 − n 2 + n2 − n = 9T n 4 + 3 n2 4 − n 2 + n2 − n = 27T n 8 + 9 n2 16 − n 4 + 3 n2 4 − n 2 + n2 − n ... = 3i T n 2i + n2 i−1 j=0 ( 3 4 )j + n i−1 j=0 ( 3 2 )j = 3i T n 2i − 4n2 3 4 i + 4n2 − 2n 2 3 i + 2n por n i=0 ai = an+1 − 1 a − 1 ... = 3log n T n 2log n − 4n2 3 4 log n + 4n2 − 2n 2 3 log n + 2n = nlog 3 T(1) − 4nlog 3 + 4n2 − 2nlog 3 + 2n = 4n2 − 5nlog 3 + 2n = O(n2 ) Carlos Contreras Bolton 3
  • 4. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Ejercicio 4: Resolver Usando el m´etodo de la sustituci´on: T(n) = 2T n 2 + bn log n Adivinamos que O(n log n). Probar T(n) ≤ cn log n por inducci´on. T(n) = 2T( n 2 ) + bn log n = 2 c n 2 log n 2 + bn log n = 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 l´ınea sea menor que cn log n Entonces, adivinamos que O(n log2 n). Probar T(n) ≤ cn log2 n por inducci´on. T(n) = 2T( n 2 ) + bn log n = 2 c n 2 log2 n 2 + bn log n = 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) Si c > b. Por lo tanto, T(n) = n log2 n. Carlos Contreras Bolton 4
  • 5. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Ejercicio 5: Resolver T(n) = 1 n n−1 i=0 T(i) + cn, con T(0)=0. T(n) = 1 n n−1 i=0 T(i) + cn (1) Multiplicar por n en (1): nT(n) = n−1 i=0 T(i) + cn2 (2) Desplazando (2) en n − 1: (n − 1)T(n − 1) = n−2 i=0 T(i) + c(n − 1)2 (3) Restando (2)-(3): nT(n) − (n − 1)T(n − 1) = ( n−1 i=0 T(i) − n−2 i=0 T(i)) + (cn2 − c(n − 1)2 ) (4) nT(n)−(n−1)T(n−1) = ((T(0)+...+T(n−2)+T(n−1))−(T(0)+...+T(n−2)))+(cn2 −c(n2 −2n+1)) (5) nT(n) − (n − 1)T(n − 1) = T(n − 1) + 2cn − c (6) nT(n) = nT(n − 1) + 2cn − c (7) Dividiendo (7) por n: T(n) = T(n − 1) + 2cn − c n (8) Expandiendo: T(n) = 2cn − c n + T(n − 1) = 2cn − c n + 2c(n − 1) − c n − 1 + T(n − 2) = 2cn − c n + 2c(n − 1) − c n − 1 + 2c(n − 2) − c n − 2 + T(n − 3) = 2cn − c n + 2c(n − 1) − c n − 1 + 2c(n − 2) − c n − 2 + ... + 2c(1) − c 1 + T(0) = 2cn n + 2c(n − 1) n − 1 + 2c(n − 2) n − 2 + ... + 2c(1) 1 − c n + c n − 1 + c n − 2 + ... + c 1 = (2c + 2c + 2c + ... + 2c) − c n i=1 1 i = 2cn − c n i=1 1 i = 2cn − cHn < 2cn Por lo tanto, T(n) = O(n). Carlos Contreras Bolton 5
  • 6. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Ejercicio 6: Resolver T(n) = n − 1 + 2 n n−1 i=1 T(i), n ≥ 2. T(1) = 0 (1) Re-escribir la recurrencia para n + 1: T(n + 1) = (n + 1) − 1 + 2 n + 1 n i=1 T(i) (2) Multiplicar (1) por n y (2) por n + 1: nT(n) = n(n − 1) + 2 n−1 i=1 T(i) (3) (n + 1)T(n + 1) = (n + 1)n + 2 n i=1 T(i) (4) Restar (4)-(3): (n + 1)T(n + 1) − nT(n) = (n + 1)n − n(n − 1) + 2( n i=1 T(i) − n−1 i=1 T(i)) (5) (n+1)T(n+1)−nT(n) = 2n+2((T(0)+T(1)+...+T(n−1)+T(n))−(T(0)+T(1)+...+T(n−1))) (6) (n + 1)T(n + 1) − nT(n) = 2n + 2T(n) (7) T(n + 1) = n + 2 n + 1 T(n) + 2n n + 1 (n ≥ 2) (8) Podemos simplificar 2n/(n + 1) como cota inferior 2. T(n + 1) ≤ n + 2 n + 1 T(n) + 2 (9) T(n) ≤ n + 1 n T(n − 1) + 2 (10) Expandiendo (10): T(n) ≤ 2 + n + 1 n T(n − 1) = 2 + n + 1 n 2 + n n − 1 T(n − 2) = 2 + n + 1 n 2 + n n − 1 2 + n − 1 n − 2 T(n − 3) = 2 + n + 1 n 2 + n n − 1 2 + n − 1 n − 2 2 + n − 2 n − 3 T(n − 4) ¿Hasta d´onde llega la expansi´on? hasta llegar a T(3) ≤ 4 3 T(2)+2 = 2+ 4 3 (3 2 T(1)+2), como T(1) = 0, entonces T(3) ≤ 2 + 4 3 (2) (este es el motivo del 4/3 visto en el ejercicio en clases). Continuando con la expansi´on: Carlos Contreras Bolton 6
  • 7. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis T(n) ≤ 2 + n + 1 n 2 + n n − 1 2 + n − 1 n − 2 2 + n − 2 n − 3 ..,2 + 4 3 (2) = 2 1 + n + 1 n + n + 1 n n n − 1 + n + 1 n n n − 1 n − 1 n − 2 + ... + n + 1 n n n − 1 n − 1 n − 2 ... 4 3 = 2 1 + n + 1 n + n + 1 n − 1 + n + 1 n − 2 + ... + n + 1 3 = 2(n + 1) 1 n + 1 + 1 n + 1 n − 1 + ... + 1 3 = 2(n + 1) 1 n + 1 + 1 n + 1 n − 1 + ... + 1 3 + 1 2 + 1 − 1 2 + 1 = 2(n + 1)(H(n + 1) − 1, 5) Recuerden que H(n) = 1+1/2+1/3+...+1/n es la serie harm´onica, la cual tiene una aproximaci´on a H(n) = ln n + γ + O(1/n), donde γ = 0, 577.. es la constante de Euler. Entonces la soluci´on a T(n) es: T(n) ≤ 2(n + 1)(ln n + γ − 1, 5) + O(1) = O(n log n) Carlos Contreras Bolton 7
  • 8. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Ejercicio 7: Resolver T(n) = a if n = 1; 2T(n/4) + log n if n > 1. T(n) = 2T n 4 + log n = 2 2T n 42 + log n 4 + log n = 22 T n 42 + 2 log n 4 + log n = 2 2 2T n 43 + log n 42 + log n 4 + log n = 23 T n 43 + 22 log n 42 + 2 log n 4 + log n = ... = 2i T n 4i + i−1 k=0 log n 4k = 2i T n 4i + log n i−1 k=0 2k − i−1 k=0 2k log 4k 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: T(n) = 2i T n 4i + log4 n i−1 k=0 2k − i−1 k=0 2k log4 4k = ... = 2i T (1) + log4 n i−1 k=0 2k − i−1 k=0 2k k = a2i + log4 n(2i − 1) − (i − 2)2i − 2 Considerando que n es potencia de 4, entonces n = 4i e i = log4 n. Tambi´en podemos obtener que√ n = 2i . T(n) = a2i + log4 n(2i − 1) − (i − 2)2i − 2 = a √ n + log4 n( √ n − 1) − (log4 n − 2) √ n − 2 = (a + 2) √ n − log4 n − 2 Por lo tanto T(n) = Θ( √ n). Carlos Contreras Bolton 8
  • 9. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis Ejercicio 8: Resolver T(n) = 1 n = 1 n−1 i=1 T(i) + n2 n ≥ 2 Si restamos T(n − 1) a T(n) tenemos: T(n) − T(n − 1) = n−1 i=1 T(i) + n2 − n−2 i=1 T(i) + (n − 1)2 = n−2 i=1 T(i) + T(n − 1) + n2 − n−2 i=1 T(i) + n2 − 2n + 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 ) ... = 2i T(n − i) + i−1 j=0 2j+1 (n − j) − i−1 j=0 2j = 2i T(n − i) + n i−1 j=0 2j+1 − i−1 j=0 j2j+1 − i−1 j=0 2j = 2i T(n − i) + 2n i−1 j=0 2j − 2 i−1 j=0 j2j − i−1 j=0 2j ... = 2i T(n − i) + (2n − 1) i−1 j=0 2j − 2 i−1 j=0 j2j Al caso base se llega cuando n − i = 1, entonces i = n − 1: T(n) = 2n−1 T(1) + (2n − 1) n−2 j=0 2j − 2 n−2 j=0 j2j Considerando que: Carlos Contreras Bolton 9
  • 10. Dise˜no de Algoritmos Ejercicios Resueltos - An´alisis n−2 j=0 2j = 2n−1 − 1 n−2 j=0 j2j = (n − 3)2n−1 + 2 Reemplazando en la recurrencia: T(n) = 2n−1 + (2n − 1)(2n−1 − 1) − 2((n − 3)2n−1 + 2) = (1 + 2n − 1 − 2n + 6)2n−1 − 2n + 1 − 4 = 6 · 2n−1 − 2n − 3 = 3 · 2n − 2n − 3 ∈ Θ(2n ) Carlos Contreras Bolton 10