Escolar Documentos
Profissional Documentos
Cultura Documentos
v em ordem decrescente
(3) n1 vezes e (4) 1 vez; Expresso n (crescimento linear). (3) n1 vezes e (4) j vezes, para j {i, ... , n1}; Expresso n2 (crescimento quadrtico).
3
v em ordem crescente
Complexidade de algoritmos
Dependendo dos dados, um algoritmo pode, ento funcionar de forma eficiente ou no; A anlise dos casos avalia a complexidade do algoritmo; H diferentes medidas de complexidade:
Pior caso: corresponde ao nmero de passos para a entrada mais desfavorvel; Melhor caso: corresponde ao nmero de passos para a entrada mais favorvel; Caso mdio: corresponde mdia dos passos para cada possvel entrada de acordo com a probabilidade dela ocorrer.
4
Comportamento Assinttico
Comportamento assinttico das funes de custo:
Comportamento de funes para grandes valores de n;
Qual o comportamento de (n) quando n cresce? Se f uma funo de complexidade para algoritmo F,
ento O(f) considerada a complexidade assinttica ou o comportamento assinttico do algoritmo F.
Comportamento Assinttico
Uma funo (n) domina assintoticamente outra funo g(n) se existem duas constantes positivas c e n0 tais que, para n n0, temos |g(n)| c|(n)|. Exemplo:
custo 80 70
Sejam (n)=2n2.
g(n)=(n+1)2;
60 50 40 30 20 10 0 0.5 1.0 1.5 2.0 2.5 n 3.0 3.5 4.0 5.0 6.0 g(n) cf(n)
Comportamento Assinttico
Como exemplo, considere o nmero de operaes de cada um dos dois algoritmos que resolvem o mesmo problema, como funo de n;
Algoritmo 1: f1(n)=2n2 operaes Algoritmo 2: f2(n)=100n operaes
f1(n)??
f2(n)??
Comportamento Assinttico
20000 18000 16000 14000
custo
n 10 20 30 40 50 60 70 80 90 100 f1(n) 200 800 1800 3200 5000 7200 9800 12800 16200 20000 f2(n) 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
50
60
70
80
90
100
Limite Superior
A notao O (big-oh) define um limite superior para a funo, por um fator constante. Letra grega micron; Escreve-se f(n) = O(g(n)), se existirem constantes positivas c e n0, tais que n n0, o valor de f(n) menor ou igual a cg(n). Neste caso, pode-se dizer que g(n) um limite assintoticamente superior (upper bound) para f(n). Escrevemos f(n) = O(g(n)) para expressar que g(n) domina assintoticamente f(n). L-se f(n) da ordem no mximo g(n).
10
Limite Superior
f(n)=(n+1)2 g(n)=4(n)2
f(n) g(n) 20 18 16 14 12 10 8 6 4 2 0 0 1 2 3 4 5 6
n0
f(n) = O(g(n))
Logo, f(n) O(n2), quando n0=1 e c=4, j que (n+1)2 4n2 para n 1
11
Limite inferior
A notao (big-Omega) define um limite inferior para a funo, por um fator constante. Escreve-se f(n)=(g(n)), se existirem constantes positivas c e n0, tais que nn0, o valor de f(n) maior ou igual a cg(n). Neste caso, pode-se dizer que g(n) um limite assintoticamente inferior (lower bound) para f(n).
12
Limite inferior
f(n)=n2 g(n)=4n
20 18 16 14 12 10 8 6 4 2 0 0 1 2 3 cg(n) f(n)
n0
4
f(n) = (g(n))
13
Limite exato
A notao (big-Theta) limita a funo por fatores constantes. Escreve-se f(n)=(g(n)), se existirem constantes positivas c1, c2 e n0, tais que nn0, o valor de f(n) est sempre entre c1g(n) e c2g(n), inclusive. Neste caso, pode-se dizer que g(n) um limite assinttico firme (tight bound) para f(n).
14
Limite exato
f(n)=(n+1)2 g(n)=c1*(n)2 g(n)=c2*(n)2
n0
f(n) = (g(n))
15
Comportamento Assinttico
Exemplo:
Mostre que f(n) =3n3 +2n2 +n O(n3). Significa dizer que f(n)=O(g(n)). Ou seja, que g(n) ser superior a f(n) a partir de uma dado momento. Reposta: basta mostra que 3n3 +2n2 +n 6n3, para n 0.
f(n) 1000 900 800 700 600 500 400 300 200 100 0 0 1 2 3 4 5 6 7 8 1g(n) 6g(n)
16
Comportamento Assinttico
Exemplo:
Mostre que f(n) =3n3 +2n2 +n (n3). Significa dizer que f(n)=(g(n)). Ou seja, que f(n) ser superior a g(n). Reposta: basta mostra que 3n3 +2n2 +n 1n3, para n 0.
f(n) 1000 900 800 700 600 500 400 300 200 100 0 0 1 2 3 4 5 6 7 8 1g(n)
17
Exerccios
1. 2. 3. 4. Prove que 2n + 3n + 4 O(n) Prove que 3 + 2/n O(n0) Prove que n3 O(200n2) Prove que log n O(n).
18