Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Análisis de Complejidad
Semestre 1 - 2024
Análisis de Algoritmos y Estructura de Datos
Multidisciplina
Departamento de Ingeniería Informática
U1 S2 1
Objetivo
2
Contenido
3
Contexto
Implementación
Solución 1 Pseudocódigo 1
1
Implementación
Solución 2 Pseudocódigo 2
2
Implementación
Solución 3 Pseudocódigo 3
3
4
Eficiencia de un algoritmo
• Eficiencia
• RAE:
“Capacidad de disponer de alguien o de algo para conseguir un
efecto determinado”
• El algoritmo usa la menor cantidad de recursos para cumplir
con su tarea
¿Por qué estudiar algoritmos
eficientes?
• El tiempo de ejecución y el espacio en memoria son recursos
limitados.
Arquitectura avanzada
Algoritmos eficientes
Eficiencia de un algoritmo
• Instrucción básica:
• instrucción cuyo tiempo de ejecución está acotado superiormente por una
constante.
10
Modelo de máquina
11
Modelo de máquina
12
Una definición más formal
13
Una definición más formal
𝑇(𝑛) = 𝑓 ∗𝑡
14
Ejemplo 1: intercambio
intercambio(NUM a, NUM b)
NUM temporal ← a
a ← b
b ← temporal
Complejidad: 𝑇(𝑛) = 1 + 1 + 1 = 3
15
Ejemplo 2: conversión
Complejidad:𝑇(𝑛) = 3 + 1 = 4
16
Ejemplo 3: paridad
Complejidad:𝑇(𝑛) = 1 + 2 + 1 + 1 = 5
17
Ejemplo 4: mayor
• Algoritmo: determina el mayor de tres números
Complejidad:𝑇(𝑛) = 3 + 1 + 1 + 1 = 6
18
Ejemplo 5: suma de elementos
Complejidad:𝑇(𝑛) = 1 + 3(𝑛 + 1) + 2𝑛 + 1 = 5𝑛 + 5
19
Ejemplo 6: suma de elementos (otra
versión)
Complejidad:𝑇(𝑛) = 2 + (𝑛 + 1) + 4𝑛 + 1 = 5𝑛 + 4
20
Ejemplo 7: suma de matrices
21
Ejemplo 8: suma de elementos pares
Complejidad:𝑇(𝑛) = 1 + 3(𝑛 + 1) + 4𝑛 + 1 = 7𝑛 + 5
22
Problema propuesto nro. 1
23
Orden de complejidad - Notación O
• Dadas y , se
dice que es de orden
si
existen constantes tales que
24
Notación O
25
Propiedades de las asintóticas
1. Regal de la suma
2. Constantes multiplicativas
3. Regla de la multiplicación
4. Cotas
5. ) Transitividad
26
Ejemplo 9: factorial
Complejidad:𝑇 𝑛 = 5𝑛 + 3 ~ 𝑂 𝑛 + 𝑂 1 ~ 𝑂 𝑛
27
Ejemplo 10: suma de matrices
28
Ejemplo 11: multiplicación de matrices
Complejidad:
si 𝑛 ≥ 𝑚, 𝑝 entonces: 𝑇 𝑛 = 6𝑛 + 7𝑛 + 6𝑛 + 3 ~
𝑂 𝑛 + 𝑂 𝑛 + 𝑂 𝑛 + 𝑂 1 ~𝑂 𝑛
29
Ejemplo 12: múltiples mensajes
30
Ejemplo 13: múltiples mensajes
Complejidad: 𝑇 𝑛 = ~𝑂 𝑛
31
Ejemplo 14: múltiples mensajes
• Problema: ¿Cuántas veces se muestra el mensaje? Para el cálculo considere WRITE()
una instrucción básica.
32
Tipos de orden de complejidad
• O(f(n))
La función de O() nos indicará qué tan bueno es un algoritmo para distintas
entradas de datos
Ecuación Orden Tipo
T(n)=c O(1) Constante
T(n)=c log2 n O(log2 n) Orden logarítmico
T(n)=c n O(n) Orden lineal
T(n)=c n2 O(n2) Orden cuadrático
T(n)=c n3 O(n3) Orden cúbico
T(n)=c 2n O(2n) Orden exponencial
T(n)=c n! O(n!) Orden factorial
33
Análisis de algoritmos
Complejidad de algoritmos
iterativos
• Se debe conocer el tiempo de ejecución teórico de cada instrucción
(modelo RAM teórico)
• Anotar la suma de todos los tiempos
• Resolver y acotar la función
• Identificar n0, k y f(n)
• O(f(n))
35
Problema propuesto nro. 2
36
• Clase de refuerzo:
Próximas Fechas Miércoles
• Clase de Laboratorio :
Libre
I A
E1 A
U1 - S1
38