Clase04 Complejidad
Clase04 Complejidad
Clase04 Complejidad
COMPLEJIDAD DE ALGORITMOS
2019-1
Facultad de Ingeniería
5°Semestre Ing Clasede
03 sistemas
2018
Jaime Eduardo Cortés
jcortes@uco.edu.co
Jaime Eduardo Cortés
Ingeniero de Sistemas
Candidato Ms física aplicada
jcortes@uco.edu.co
3116322941
Contenido
● Clasificación de problemas(Trabilidad/Intratabilidad).
● Ejemplo de problema intratable.
● Intratabilidad.
● Reducciones de tiempo polinomial.
● Técnicas de Fuerza Bruta.
Ejemplo de problema Intratable.
Elija una carta de cada celda.
9*8*7*6*5*4*3*2*1=362,880
Ejemplo de problema Intratable.
Para n cartas el numero de arreglos a examinar es n! (n
factorial).
9*8*7*6*5*4*3*2*1=362,880
9 0.362 s
16 20922789.888 S
25 15511210043330985984S
4918572439 Siglos
Algoritmos que son del tipo 𝑂(𝑛𝑘 ) para algún 𝑘 fijo son de
tiempo polinómico y son tratables, por ejemplo:
𝑂 1 , 𝑂 log 𝑛 , 𝑂 𝑛 , 𝑂 𝑛 log 𝑛 , 𝑂(𝑛2 )
Entrada a, b, c
Salida r1,r2
3𝑥 + 5 = 0 (2)
0𝑥 2 + 3𝑥 + 5 = 0 (1)
3x+5=0 𝑎𝑥 2 + 𝑎𝑥 2 + 𝑏𝑥 + 𝑐 = 0 + 𝑐 r1=-5/3
=0 (1)
Problema de Satisfacibilidad.
Es el mas representativo de todos los problemas NP, es sin
negarlo un problema NP completo.
https://www.youtube.com/watch?v=-ZS_zFg4w5k
4 1 2
D
9 8
B 13 C
Recursión (ejemplo).
import edu.princeton.cs.algs4.StdOut;
public static int rank(int key, int[] a, int lo, int hi)
{
// Index of key in a[], if present, is not smaller than lo
// and not larger than hi.
if (lo > hi) return -1;
int mid = lo + (hi - lo) / 2;
if (key < a[mid]) return rank(key, a, lo, mid - 1);
else if (key > a[mid]) return rank(key, a, mid + 1, hi);
else return mid;
}
Análisis de búsqueda binaria
O(lgN) 7 3
15 4
100 7
100000 17
# elementos 1000000 20