Professional Documents
Culture Documents
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Introducci
on y Comportamiento Asint
otico
M. Andrea Rodrguez-Tastets
Ayudante: Erick Elejalde
Universidad de Concepci
on,Chile
www.inf.udec.cl\ andrea
andrea@udec.cl
I Semestre - 2014
1/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
2/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
3/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Algoritmo (1/2)
Es un conjunto finito de instrucciones no ambiguo y efectivo (termina en
un intervalo finito de tiempo) que solucionan un problema. Sus
caractersticas son:
Input: cero o mas cantidades o valores son ingresados
Output: Al menos un valor es entregado
Cada instrucci
on en computable (propiedad de definicion)
El algoritmo se detiene: entrega resultado o dice que los resultados
no existen (propiedad de detenci
on o efectividad): Si un conjunto de
instrucciones cumple con las propiedades de un algoritmo excepto
por ser finito en tiempo, se denomina proceso computacional.
4/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
5/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Algoritmos: seudo-c
odigo
1
2
3
4
5
6
7
6
8
9
Algoritmo F(N)
begin
p2
while (N > p 2 ) do
if N mod p = 0then
Print p
N = N/p
else
p =p+1
endif
endWhile
Print N
end
6/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Qu
e revisaremos: T
ecnicas de dise
no de algoritmos
Dividir y vencer
Backtracking
Branch and bound
Metodos greedy
Programaci
on dinamica
B
usqueda basica y tecnicas de recorrido
Grafos
Problemas NP y Algoritmos de aproximaci
on
7/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Formas de an
alisis
Estructura de un algoritmo
Validaci
on de correctitud
Analisis de tiempo y uso de espacio
C
omo transformar un algoritmo para solucionar un problema
C
omo implementar y evaluar un algoritmo: mantener el codigo corto
y cercano al algoritmo
8/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
9/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
10/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
11/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
1
2
3
4
Function Multiplicar(y,z)
if z = 0 then
return 0
else
return(Multiplicar(c y , bz/cc) + y (z mod c))
(1)
12/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Function Multiplicar(y,z)
if z = 0 then
return 0
else
return(Multiplicar(c y , bz/cc) + y (z mod c))
13/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
14/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
An
alisis de algoritmos: temas importantes
Complejidad de tiempo: dependencia del tiempo respecto al tama
no
de entrada
Complejidad de espacio
Influencia del tama
no de palabra del procesador: procesador u
nico o
multiple)
Calidad de la soluci
on: soluci
on exacta o aproximada.
15/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
An
alisis de algoritmos: RAM model
Un procesador ejecuta una instrucci
on en cada paso
Cada instrucci
on toma una unidad de tiempo (lo cual no siempre es
cierto)
Los operadores son tama
no fijo
El almacenamiento es de tama
no fijo (RAM y disco)
16/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Por qu
e importa el rendimiento?
Rendimiento distingue lo que es posible de lo imposible.
Algoritmos definen una comunicaci
on en un lenguaje que permite
definir costos.
Permite la b
usqueda de soluciones eficientes (rapidas) y no solo
eficaces.
17/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
M
etodos de an
alisis de complejidad de algoritmos
Analisis asint
otico. Diferentes medidas de interes son el peor caso, el
mejor caso, y el caso promedio.
Analisis te
orico que crea una relaci
on recurrente que relaciona la
soluci
on del problema original a la soluci
on de problemas mas
peque
nos.
Implementaci
on en papel: sumar los pasos del agoritmo en funcion
del tama
no de entrada.
Implementaci
on en un lenguaje de computaci
on y ejecucion
18/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Algoritmo: ejemplo
Problema: Dado una lista de n
umeros, entregar el k-esimo mas
grande.
Algoritmo 1: Almacenar los n
umeros en un arreglo, ordernarlos y
luego sacar el k-esimo.
Algoritmo 2: Almacenar los primeros k n
umeros en un arreglo y
ordenarlos en forma descendiente. Por cada n
umero remanente, si el
n
umero es mayor que el k-esimo, insertarlo en la posicion correcta
del arreglo. Recuperar el n
umero en la posici
on k.
Cual es mejor?
19/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Funci
on de complejidad
La funci
on de complejidad f (n), donde n es el tama
no del problema, es
una medida de la cantidad de recursos que requiere un algoritmo. Puesto
que la cantidad de recursos crece con el tama
no del problema, entonces
f (n) > f (m) n > m (mon
otona creciente). La funcion de
complejidad puede ser espacial (si se mide el espacio ocupado) o
temporal (si se mide tiempo de ejecuci
on).
20/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Elecci
on del tama
no
Problema
Tama
no
B
usqueda de un elemento en el conjunto
Multiplicar dos matrices
Recorrer un
arbol
Resolver un sistema de ecuaciones lineales
Ordenar un conjunto de valores
N
umero de elementos en el conjunto
Dimensi
on de las matrices
N
umero de nodos en el
arbol
N
umero de ecuaciones y/o inc
ognitas
N
umero de elementos en el conjunto
21/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
An
alisis espacial
El analisis espacial determina la cantidad de memoria que utiliza un
algoritmo, para lo cual se suman todas las celdas de memoria que utiliza.
En general hay dos tipos de celdas de memoria que son requeridas por los
algoritmos:
Celdas estaticas. Son las que se utilizan en todo el tiempo que dura
la ejecuci
on de un algoritmo.
Celdas dinamicas. Son las que se utilizan durante un momento de la
ejecuci
on, y por lo tanto pueden ser asignadas y devueltas conforme
se ejecuta el algoritmo.
22/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
An
alisis temporal
El analisis temporal se expresa en el n
umero de operaciones que realiza
un algoritmo. Se asume que cada operaci
on requiere una cierta cantidad
constante de tiempo para ser ejecutada.
23/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo 1: B
usqueda lineal
Algoritmo
BusquedaLineal(valor, A,n): integer
begin
1
i 1;
1
2
while (i n) (A[i] 6= valor ) do k + 1
3
i i + 1;
k
endWhile
4
return i
1
end
La variable k depende de la entrada de datos.
24/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo 1 continuaci
on
En este ejemplo se puede notar que el n
umero de veces que se ejecutan
algunas operaciones, para valores sucesivamente mayores que k, presenta
un modelo de crecimiento similar al que tiene el n
umero total de
operaciones que ejecuta el algoritmo. Para estimar el tiempo total
entonces, no se necesita sumar todo, sino identificar una operacion basica
que observe el comportamiento del algoritmo y contar el n
umero de veces
que se ejecuta esa operaci
on. En este algoritmos existen alternativas de
operaciones basicas: sumas, asignaciones, comparaciones del ndice,
comparaciones con elementos de A y acceso a elementos de A. En este
caso, consideraremos como operaci
on basica la comparacion entre
elementos del arreglo y el valor buscado.
25/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
26/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Continuaci
on ejemplo 1
Caso peor ocurre cuando el valor no se encuentra: f (n) = n + 1
Caso mejor ocurre cuando el valor esta en la primera posicion:
f (n) = 1
Caso medio: ft (n) = 1P(1) + 2P(2) + . . . nP(n) + (n + 1)P(n + 1),
donde P(i) es la probabilidad de que el valor se encuentre en la
localidad i, (1 i n) y P(n + 1) es la probabilidad de que no
este en el arreglo. Se supone que todos son igualmente probables,
entonces P(i) = 1/(n + 1). As:
n+1
f (n) =
(n + 1)(n + 2)
n+2
1 X
i=
=
n+1
2(n + 1)
2
i=1
27/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo 2
Problema: dado un arreglo de valores, encontrar el producto de los
dos n
umeros mayores.
Tama
no del problema: n, el n
umero de elementos en el arreglo.
Operaci
on basica: comparaci
on
28/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo 2: Producto2Mayores
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Algoritmo
Producto2Mayores(A,n): real
begin
if A[1] > A[2] then
mayor 1 A[1];
mayor 2 A[2];
else
mayor 2 A[1];
mayor 1 A[2];
endif
i 3;
while i n do
if A[i] > mayor 1 then
mayor 2 mayor 1;
mayor 1 A[i];
else if A[i] > mayor 2 then
mayor 2 A[i];
endif
i + 1;
endWhile
return mayor 1 mayor 2;
end
29/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Continuaci
on ejemplo 2
Este algoritmo realiza las siguientes operaciones:
1
Comparaci
on entre mayor 1, mayor 2 y los elementos del arreglo
Asignaci
on a mayor 1 y mayor 2
Asignaci
on al ndice
Return
Comparaci
on entre el ndice i y la longitud del arreglo n
30/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Continuaci
on ejemplo 2
Caso peor ocurre cuando el arreglo tiene en las dos primera
posiciones los valores mayores (se hacen dos comparaciones por
iteraci
on): f (n) = (2 (n 2)) = 2n 4
El caso mejor ocurre cuando el arreglo esta ordenado en forma
ascendente (en cada iteraci
on se hace solo la primera comparacion):
f (n) = (1 (n 2)) = n 2
31/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Continuaci
on ejemplo 2
|U|
n! posibles entradas, donde U es el
n
conjunto del que se extraen los elementos del arreglo. Considerar
todas las posibles entradas no tiene sentido para efectos de
determinar la funci
on de complejidad, sino lo que se necesita es
determinar las instancias de casos diferentes de ejecucion del
algoritmo.
Este algoritmo tiene
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo de operaciones b
asicas
Problema
Operaci
on B
asica
B
usqueda de un elemento en un
conjunto
Multiplicar matrices
Comparaci
on entre el valor y los
elementos del conjunto
Producto de elementos de las
matrices
Visitar nodos
Suma
Recorrer el
arbol
Resolver un sistema de ecuaciones lineales
Ordenar un conjunto de valores
Comparaci
on entre valores
33/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Demostraciones
Prueba por contradicci
on: Se asume que un teorema es falso, se
muestra que esta presunci
on implica que una propiedad que se sabe
verdades sea falsa, entonces la hip
otesis original debe ser verdadera.
Inducci
on matematica: Se prueba el caso base trivial, se asume
verdad para un k y se muestra que la hip
otesis es verdadera para un
k + 1. Esto se usa para algoritmos recursivos.
34/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Dominio asint
otico
Cuando el tama
no del problema es grande, la cantidad de recursos que el
algoritmo necesite puede crecer tanto que haga que su ejecucion no sea
posible. Por lo tanto, lo que interesa es sabe c
omo se comporta un
algoritmo para problemas grandes. De esta manera se estudia la
velocidad de crecimiento de la cantidad de recursos en funcion del
tama
no del problema, es decir, se estudiara el comportamiento asintotico
de la funci
on de complejidad f (n).
35/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Definici
on 1
Sean f y g funciones de N a R. Se dice que g domina asintoticamente
(d.a.) a f o que f es dominada asint
oticamente por g , si k 0 y m 0
tales que:
|f (n)| m|g (n)|, n k
Puesto que las funciones de complejidad son funciones con dominio N, y
codominio R, los conceptos y propiedades del dominio asintotico
proporcionan una manera conveniente de expresarlas y manipularlas.
36/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Definici
on 2
Sea f : N R. Se dice que f es eventualmente positiva si existe n0 N
that que f (n) retorna un valor positivo para todo n n0 .
Bajo estas circunstancias, se puede obviar el valor absoluto para la
Definici
on 1 tal que
f (n) mg (n), n k
37/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo 3
Sean f (n) = n y g (n) = n3 :
1
38/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo 3 (cont.)
Sean f (n) = n y g (n) = n3 :
(1) Demostrar
m > 0, k 0 tales que |f (n)| m|g (n)|, n k
Sustituyendo f (n) y g (n) da
|n| m|n3 |, n k
Si se toma m = 1 y k = 0, las desigualdades anteriores se cumplen, por
lo tanto, m y k existen, y en consecuencia g domina asintoticamente a f .
39/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplo 3 (cont.)
Sean f (n) = n y g (n) = n3 :
(2) Demostrar
m 0, k 0n k tales que |g (n)| > m|f (n)|
Sustituyendo f (n) y g (n) en cada lado de la desigualdad
|n3 | > m|n|
Simplificando,
40/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Relaci
on: complejidad y an
alisis asint
otico
Si t(n) es la cantidad real de recurso que se consume para una
implementaci
on especfica del un algoritmo, se tiene entonces que:
t(n)
t(n)
kf (n)
|t(n)|
k|f (n)|
41/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 1
Sea M el conjunto de funciones de N to R. La relaci
on binaria sobre este
conjunto definida como
{< f , g > |f , g M y g domina asint
oticamente a f }
es reflexiva y transitiva.
42/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 1: Demostraci
on
(1) Se debe demostrar que la relaci
on es reflexiva, es decir,
f M f d.a. f .
Si tomamos m = 1 y k = 0 la desigualdad |f (n)| m|f (n)|, n k se
cumple, la relaci
on es reflexiva.
43/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 1: Demostraci
on (cont.)
(2) Se debe demostrar que la relaci
on es transitiva, es decir, si
f , g , h M tal que f d.a. g y g d.a. h f d.a.h.
Sabemos que m1 , m2 , k1 y k2 0 tales que:
|g (n)| m1 |f (n)|, n k1 y |h(n)| m2 |g (n)|, n k2
Entonces
|h(n)| m1 m2 |f (n)|, n max(k1 , k2 )
con m = m1 m2 y k = max(k1 , k2 ), se satisface la definicion, f d.a. h y
la relaci
on es transitiva.
44/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 2
Sean f y g funciones en M, la relaci
on de equivalencia binaria f g f
y g se dominan asint
oticamente es una relaci
on de equivalencia sobre M.
45/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 2: Demostraci
on
Se requiere demostrar que la relaci
on es simetrica, transitiva y reflexiva.
(i) Puesto que f g f d.a. g y g d.a. f entonces por definicion f g
y la relaci
on es simetrica.
(ii) La relaci
on es reflexiva de Teorema 1.
(iii) Si f g y g h, entonces f d.a. g y g d.a. h, por lo que f d.a. h.
Ademas h d.a. g y g . d.a. f f h, la relaci
on es transitiva.
46/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Notaci
on
Para una funci
on dada g (n):
(g (n))
47/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Notaci
on O
Para una funci
on dada g (n):
O(g (n))
cg(n)
f(n)
48/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Notaci
on o
A diferencia de la notiaci
on O donde la cota superior puede ser ajustada o no, la
notaci
on o denota una cota superior no ajustada. Para una funci
on dada g (n):
o(g (n))
49/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Notaci
on
Para una funci
on dada g (n):
(g (n))
f(n)
cg(n)
50/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Notaci
on
An
alogo a lo que sucede entre O y o, la notaci
on w es una cota inferior no ajustada.
Para una funci
on dada g (n):
(g (n))
f(n)
cg(n)
51/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplos de O
3n2 100n + 6 = O(n2) porque 3n2 > 3n2 100n + 6
3n2 100n + 6 = O(n3) porque ,01n3 > 3n2 100n + 6
3n2 100n + 66 6= O(n) porque c n < 3n2 cuando n > c
Se debe pensar en igualdad como en el conjunto de funciones
52/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplos de
3n2 100n + 6 = (n2) porque 2 : 99n2 < 3n2 100n + 6
3n2 100n + 6 6= (n3) porque 3n2 100n + 6 < n3
10
53/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Ejemplos de
3n2 100n + 6 = (n2) porque se cumple O,
3n2 100n + 6 6= (n3) porque se cumple s
olo O
3n2 100n + 66 6= (n) porque se cumple s
olo
54/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 3
Sean f , g , h M, entonces: (a) f es O(f ).
(b) Si f es O(g ) cf es O(g ) para un c R. Es decir, el conjunto
O(g ) es cerrado bajo la manipulaci
on por una constante.
(c) Si f es O(g ) y h es O(g ) (f + h) es O(g ) donde
(f + g )(n) = f (n) + g (n) i.e. O(g ) es cerrado bajo la suma de funciones.
55/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 3: demostraci
on
Sean f , g , h M, entonces:
(a) f es O(f ); dado que f d.a. f f es O(f ).
(b) Debemos demostrar que cf es O(g ) m, k 0 tales que
cf (n) mg (n), n k, con c R. Si m = cm1
cf (n) cm1 g (n), n k1
f (n) m1 g (n), n k1
Entonces m = |c|m1 y k = k1 la desigualdad f (n) m1 g (n) se cumple y
en consecuencia cf es O(g ).
56/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 3: demostraci
on (cont.)
(c) Si f es O(g ) y h es O(g ) entonces (f + h) es O(g ).
Sabemos que existen m1 , m2 , k1 , k2 0 tales que
f (n) m1 g (n), n k1 y que h(n) m2 g (n), n k2 .
Sumando las desigualdades termino a termino:
f (n) + h(n) m1 g (n) + m2 g (n), n max(k1 , k2 ). Entonces:
f (n) + h(n) (m1 + m2 )g (n), n max(k1 , k2 ).
Com m = m1 + m2 y k = max(k1 , k2 ) se cumple que g d.a. f (n) + h(n).
57/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 4
Sean f , g M, f es O(g ) O(f ) O(g ).
Dem.
Debemos demostrar: Si f es O(g ) entonces O(f ) O(g ). Si f es
O(g ), por definci
on g d.a. f . Sea h una funci
on arbitraria tal que f d.a. h,
por transitividad g d.a h. y luego entonces h es O(g ). Dado que h puede
ser cualquier elemento de O(f ), podemos concluir que O(f ) O(g ).
Si f O(g ) entonces f es O(g ). f es O(f ) y como
O(f ) O(g ) f es O(g ).
58/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 5
Sean f , g , h1 , h2 M. Si f es O(h1 ) y g es O(h2 ) entonces f + g es
O(max(h1 , h2 )), donde una funci
on es mayor que otra si la domina
asint
otcamente.
Dem. Si f es O(h1 ) y g es O(h2 ) entonces
f (n) + g (n) m1 h1 (n) + m2 h2 (n), n max(k1 , k2 ).
Por el teorema 3 y sustituyendo,
f (n) + g (n) (m1 + m2 )max(h1 (n), h2 (n)), n max(k1 , k2 ).
Si h(n) = max(h1 (n), h2 (n)) y k = max(k1 , k2 ), entonces (f + g ) es
O(max(h1 , h2 ).
59/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Teorema 6
Sean c, d R y 0 < c < d, entonces O(nc ) O(nd ), y la inclusion es
propia.
Como consecuencia de este teorema, para determinar el grado de un
polinomio se elige el termino de mayor grado o para estimar el orden de
una expresi
on asint
otica se usa el termino mas representativo.
60/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Propiedades Notaciones
(g (n)) O(g (n))
(g (n)) (g (n))
Transitividad: (f (n) O(g (n)) g (n) O(h(n))) f (n) O(h(n)) (esto para
todas las notaciones)
Reflexividad: f (n) O(f (n)) (para notaciones O, y
Simetra : f (n) (g (n)) iff g (n) (f (n))
Simetra Transpuesta: f (n) O(g (n)) iff g (n) (f (n)) y f (n) o(g (n)) iff
g (n) (f (n))
61/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Tipos de Complejidad
La mayora de los algoritmos caen en alguno de los siguientes casos:
O(1)
Complejidad constante
O(logn)
Complejidad logartmica
O(n)
Complejidad lineal
O(nlogn)
Complejidad n log n
O(n2 )
Complejidad cuadratica
O(c n ), c > 1 Complejidad exponencial
O(n!)
Complejidad factorial
Estas complejidades tienen una relaci
on de orden dada por:
O(1) O(logn) O(n) O(nlognn) O(n2 ) O(c n ) O(n!)
62/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Funciones dominantes
Las siguiente tabla muestra razones de crecimiento de funciones comunes
medidas en nanosegundos (s).
n f (n)
10
20
30
100,000
lgn
0.003s
0.004s
0.005s
0.017 s
n
0.01s
0.02s
0.03s
0.1 ms
nlgn
0.033s
0.086s
0.147s
167 ms
n2
0.1s
0.4s
0.9s
16 s
2n
1s
1ms
1s
n!
3.63 ms
77.1 a
nos
8,4x1015 a
nos
63/64
Introducci
on
Funci
on de complejidad
Comportamiento asint
otico
Notaci
on de orden
Conjunto de funciones de N a R
O(n!)
n
O(c )
O(nc)
O(log n)
O(1)
O(n log n)
O(n)
64/64