Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos y Complejidad
Repaso de Técnicas y Herramientas
Pablo R. Fillottrani
1/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración
Herramientas Matemáticas Básicas
Notación Asintótica
Estructuras de Datos
Análisis de Algoritmos por Estructuras de Control
Técnicas y Herramientas
1 Técnicas de Demostración
3 Notación Asintótica
4 Estructuras de Datos
2/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración
Herramientas Matemáticas Básicas
Notación Asintótica
Estructuras de Datos
Análisis de Algoritmos por Estructuras de Control
4/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración
Herramientas Matemáticas Básicas
Notación Asintótica
Estructuras de Datos
Análisis de Algoritmos por Estructuras de Control
6/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
Objetivos
8/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
9/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
Notación O (·)
10/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
Ejemplos:
300n2 ∈ O (n2 )
5n4 − 4n3 + 10n2 + 39 ∈ O (n4 )
logb n ∈ O (loga n), ∀a, b
2n ∈ O (n!)
500000n ∈ O (0,00001n2 )
0,000001n2 ̸∈ O (500000n)
n! ̸∈ O (2n )
11/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
Notación Ω(·)
Ejemplos:
3n5 + 4n3 − 8n2 + 10n ∈ Ω(n4 )
logb n ∈ Ω(loga n), ∀a, b
n! ∈ Ω(2n )
0,00001n2 ∈ Ω(50000n)
50000n ̸∈ Ω(0,00001n2 )
2n ̸∈ Ω(n!)
13/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
Notación Θ(·)
Ejemplos:
3n2 ∈ Θ(n2 )
log n ̸∈ Θ(n)
2n+1 ∈ Θ(2n )
500000n2 ∈ Θ(0,00001n2 )
logb n ∈ Θ(loga n) para todo
a, b > 0
15/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
Uso en Ecuaciones
por ejemplo, f (n) = 2n2 + Θ(n) significa que f (n) es igual a 2n2
más alguna función cualquiera perteneciente a Θ(n)
2n2 + O (n) = O (n2 ) significa que no importando que función
perteneciente a O (n) se sume a 2n2 , siempre el resultado es una
función en O (n2 )
f (n) = O (g (n)) + O (h(n)) significa que f (n) es una función que
se puede obtener sumando punto a punto una función de
O (g (n)) con una función de O (h(n))
se evita hacer referencia a detalles que no afectan el
comportamiento general de la función
16/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
17/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
ORDENAR UN ARREGLO
n−1 n−1
TI (n) = c1 n + c2 (n − 1) + c3 (n − 1) + c4 ∑ tj + c5 ∑ (tj − 1) +
j =1 j =1
n−1
+c6 ∑ (tj − 1) + c8 (n − 1)
j =1
n−1 n−1
= (c1 + c2 + c3 + c8 )n − (c2 + c3 + c8 ) + (c4 + c5 + c6 ) ∑ t j − (c 5 + c 6 ) ∑ 1
j =1 j =1
18/36
Pablo R. Fillottrani Algoritmos y Complejidad
Objetivos
Técnicas de Demostración Notación O
Herramientas Matemáticas Básicas Notación Omega
Notación Asintótica Notación Theta
Estructuras de Datos Uso en Ecuaciones
Análisis de Algoritmos por Estructuras de Control Algunas Propiedades útiles
Ejemplos
= d1 n + d3 n(n − 1)
≤ d1 n + d4 n 2
= d1 n − d2 + d3 (n − 1)n/2 − d4 (n − 1)
d3 d3
≥ n 2 + d1 n − ( + d4 )n − (d2 + d4 ) ∈ Ω(n2 )
2 2
22/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración
Herramientas Matemáticas Básicas
Notación Asintótica
Estructuras de Datos
Análisis de Algoritmos por Estructuras de Control
ORDENAR UN ARREGLO
23/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración
Herramientas Matemáticas Básicas
Notación Asintótica
Estructuras de Datos
Análisis de Algoritmos por Estructuras de Control
n
TH ( n ) = Θ(n) + ∑ (c1 + c2 + c3 + Θ(log n)) =
i =2
= Θ(n) + Θ(n log n) ∈ Θ(n log n)
24/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
Secuencia
Algoritmo A
P1
P2
26/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
Condicional
Algoritmo A
IF (X)
P1
ELSE
P2
ENDIF
27/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
y también
28/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
Ciclo FOR
Algoritmo B
FOR i ::= 1 TO m
P(i)
ENDFOR
29/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
30/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
ORDENAR UN ARREGLO
32/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
Recursividad
ELEMENTO MAYOR
Function MAXIMO(T)
IF n=1
RETURN T[1]
ELSE
x ::= MAXIMO(T[1..n-1])
IF (x>T[n])
RETURN x
ELSE
RETURN T[n]
ENDIF
ENDIF
35/36
Pablo R. Fillottrani Algoritmos y Complejidad
Técnicas de Demostración Secuencia
Herramientas Matemáticas Básicas Condicional
Notación Asintótica Ciclo FOR
Estructuras de Datos Ciclos WHILE y REPEAT
Análisis de Algoritmos por Estructuras de Control Recursividad
36/36
Pablo R. Fillottrani Algoritmos y Complejidad