Documentos de Académico
Documentos de Profesional
Documentos de Cultura
jrfelizamigo@yahoo.es
Contenido
2
COMPLEJIDADES MAS
USUALES
3
Complejidad de Algoritmos.
Complejidades mas usuales.
O(1) Complejidad constante.
O(log n) Complejidad logarítmica.
O(nlog n)
n log n n n log n n2 n3 2n
1 0 1 0 1 1 2
2 1 2 2 4 8 4
4 2 4 8 16 64 16
8 3 8 24 64 512 256
16 4 16 64 256 4096 65536
32 5 32 160 1024 32768 2.147.483.648
5
Complejidad de Algoritmos.
Promedio de crecimiento de las
funciones.
6
Complejidad de Algoritmos.
Cont.
O(log n), O(n) y O(n log n) crecen
mas lentamente que los otros.
Para grandes conjuntos de datos, los
algoritmos con una complejidad
mayor que O(n3) son a menudo no
aplicables.
Un algoritmo que es exponencial
trabajara solamente con entradas
muy pequeñas.
7
Mejor, peor y caso medio
COMPLEJIDAD ALGORÍTMICA
ORDENACIÓN POR EL
MÉTODO DE INSERCIÓN
9
---
6 | 5 3 1 8 7 2 4
---
6 5 | 3 1 8 7 2 4
5 6 | 3 1 8 7 2 4
---
5 6 3 | 1 8 7 2 4
3 5 6 | 1 8 7 2 4
---
3 5 6 1 | 8 7 2 4
1 3 5 6 | 8 7 2 4
---
1 3 5 6 8 | 7 2 4
---
1 3 5 6 8 7 | 2 4
1 3 5 6 7 8 | 2 4
---
1 3 5 6 7 8 2 | 4
1 2 3 5 6 7 8 | 4
---
1 2 3 5 6 7 8 4 |
1 2 3 4 5 6 7 8 |
10
Complejidad de Algoritmos.
Ejemplo.
Paso Algoritmo Frecuencia
1 void insercion(int[] x) { 1
int i, j, temp;
2 int n = x.length; 1
3 for (i = 1; i < n; i++) { n
4 temp = x[i]; n-1
5 for (j = i; j > 0 && temp < x[j - 1]; j--) { n-1 n
6 x[j] = x[j - 1]; n-1 n-1
}
7 x[j] = temp; n-1
}
}
t(n) = 2n2 + 1
t(n) O(n2).
11
Complejidad
en el peor de los casos
La complejidad en el peor de los casos de un algoritmo
es la función definida por el máximo número de pasos
que toma en cualquier instancia de tamaño n.
12
Complejidad
mejor y promedio de los casos
La complejidad en el mejor de los casos de un
algoritmo es la función definida por el mínimo número
de pasos que toma en cualquier instancia de tamaño n.
14
Limites superiores e
inferiores
Es más fácil hablar de los límites superiores
e inferiores de la función del peor caso.
15
Nombres de las funciones
límites
• f (n) ( g (n)) significa que c x g (n) es el límite
superior de f (n).
• f (n) ( g (n)) significa que c x g (n) es el límite
inferior de f (n).
• f (n) ( g (n)) significa que c1 x g (n) es el límite
superior de f (n) y c2 x g (n) es el límite inferior
de f (n).
16
Bibliografía
18