Buscar

Análise de Algoritmos - Aula 02 (Guilherme)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Roteiro da Aula 2
1 Notac¸a˜o Assinto´tica
Cota superior: f(n) = O(g(n))
Cota inferior: f(n) = Ω(g(n))
Equivaleˆncia assinto´tica: f(n) = Θ(g(n))
Crescimento estritamente menor: f(n) = o(g(n))
Crescimento estritamente maior: f(n) = ω(g(n))
2 Ordenac¸a˜o por crescimento assinto´tico
Polinoˆmios e Exponenciais
Polilogaritmos e Polinoˆmios
3 Uso de notac¸a˜o assinto´tica em equac¸o˜es
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Notac¸a˜o Assinto´tica
• A notac¸a˜o assinto´tica da´ informac¸a˜o sobre a relac¸a˜o de
crescimento assinto´tico (quando n →∞) para duas
func¸o˜es:
• f, g : R → R (ou f, g : N → N);
• Consideraremos apenas func¸o˜es que, a partir de certo
ponto, sa˜o monotonicamente crescentes:
• ∃nc[nc ≤ n ≤ m ⇒ f(n) ≤ f(m)];
Na˜o faz muito sentido um algoritmo cuja
func¸a˜o de custo de tempo de pior caso e´
f(n) = n2 · cos(n) + |n2 · cos(n)|
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota superior
f(n) = O(g(n))
Sse existem constantes c > 0 e n0 > 0 tal que para todo
n ≥ n0 vale f(n) ≤ c · g(n).
n
n0
f(n)
c · g(n)
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota superior
Exemplos
• n2
2 + n + 2 = O(n
2);
• Pois para c = 1 e n0 = 4:
n2
2
+ n + 2 ≤ 1 · n2 = n
2
2
+
n2
2
n + 2 ≤ n
2
2
vale claramente para todo n ≥ 4
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota superior
Tambe´m vale:
• n2 = O(n22 + n + 2);
• Pois para c = 4 e n0 = 2:
n2 ≤ 4 · (n
2
2
+ n + 2)
n2 ≤ n2 + n2 + 4n + 8
1 ≤ n2 + 4n + 8
vale claramente para todo n ≥ 2
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota superior
Exemplos
• n2 = O(n3);
• Pois para c = 1 e n0 = 1:
n2 ≤ 1 · n3 = n2 · n
1 ≤ n
vale claramente para todo n ≥ 1
Mas
• n3 6= O(n2).
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota superior
Exerc´ıcios
• Mostre que 2n+1 = O(2n);
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota superior
Exerc´ıcios
• Mostre que 2n+1 = O(2n);
• log n e √n: quem e´ O(de quem)?
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota superior
Exerc´ıcios
• Mostre que 2n+1 = O(2n);
• log n e √n: quem e´ O(de quem)?
• 2n = O(n!)?
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Cota inferior
f(n) = Ω(g(n))
Sse existem constantes c > 0 e n0 > 0 tal que para todo
n ≥ n0 vale f(n) ≥ c · g(n).
n
n0
c · g(n)
f(n)
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Implicac¸o˜es
• Se f(n) = O(g(n)) e g(n) = O(h(n)), enta˜o
f(n) = O(h(n));
• Se f(n) = O(g(n)), enta˜o g(n) = Ω(f(n)).
f(n) = Ω(g(n))
Sse g(n) = O(f(n)).
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Equivaleˆncia Assinto´tica
f(n) = Θ(g(n))
Sse f(n) = O(g(n)) e f(n) = Ω(g(n)).
O conceito intuitivo e´:
f(n) = O(g(n)) f tem crescimento assinto´tico ≤ que g
f(n) = Ω(g(n)) f tem crescimento assinto´tico ≥ que g
f(n) = Θ(g(n)) f e g teˆm o mesmo crescimento assinto´tico
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Crescimento estritamente menor
f(n) = o(g(n))
Sse para qualquer constante c > 0, existe uma constante n0 tal
que para todo n ≥ n0 vale f(n) < c · g(n).
f(n) = o(g(n))
Sse limn→∞
f(n)
g(n) = 0.
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜oAssinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Crescimento estritamente menor
Exemplo
• n log n = o(n2);
• Pois:
lim
n→∞
n logn
n2
= lim
n→∞
logn
n
= 0
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Implicac¸o˜es
• Se f(n) = o(g(n)), enta˜o f(n) = O(g(n));
• Se f(n) = o(g(n)), enta˜o f(n) 6= Ω(g(n)).
• Se f(n) = o(g(n)), enta˜o f(n) 6= Θ(g(n)).
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Crescimento estritamente maior
f(n) = ω(g(n))
Sse para qualquer constante c > 0, existe uma constante n0 tal
que para todo n ≥ n0 vale c · g(n) < f(n).
f(n) = ω(g(n))
Sse limn→∞
f(n)
g(n) =∞.
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Cota superior:
f(n) =
O(g(n))
Cota inferior:
f(n) =
Ω(g(n))
Equivaleˆncia
assinto´tica:
f(n) =
Θ(g(n))
Crescimento
estritamente
menor:
f(n) =
o(g(n))
Crescimento
estritamente
maior: f(n) =
ω(g(n))
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Crescimento estritamente maior
f(n) = ω(g(n))
Sse g(n) = o(f(n)).
Exemplo
• n2 = ω(n log n).
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Polinoˆmios e
Exponenciais
Polilogaritmos e
Polinoˆmios
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Ordenac¸a˜o por crescimento assinto´tico
• Indexar as seguintes func¸o˜es, f1, f2, . . . , tal que
fi = o(fi+1), para todo i:
2n, n, n logn,
n
log n
, n!, n2, n3
√
n, n2 log n, 3n, nn, log n, 5
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Polinoˆmios e
Exponenciais
Polilogaritmos e
Polinoˆmios
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Qual e´ a relac¸a˜o assinto´tica?
entre n logn e logn!
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Polinoˆmios e
Exponenciais
Polilogaritmos e
Polinoˆmios
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Qual e´ a relac¸a˜o assinto´tica?
entre n logn e logn!
• Claramente, log n! = O(n logn), pois como:
n log n = logn + logn + · · · + logn
log n! = logn + log(n− 1) + · · · + log 1
• Temos que para c = 1 e n0 = 4:
logn! ≤ c · n logn, n ≥ n0
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Polinoˆmios e
Exponenciais
Polilogaritmos e
Polinoˆmios
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Qual e´ a relac¸a˜o assinto´tica?
entre n logn e logn!
• Mas, log n! = Ω(n log n) tambe´m!
Mostrar que log n! ≥ 14 · n logn, n ≥ 4
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Polinoˆmios e
Exponenciais
Polilogaritmos e
Polinoˆmios
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Polinoˆmios e Exponenciais
• Qualquer exponencial cresce mais ra´pido assintoticamente
do que qualquer polinomial:
• Ex.: n1000000 = o(1.00001n)
Em geral
Para quaisquer constantes reais a e b, tal que a > 1:
nb = o(an)
Pois
lim
n→∞
nb
an
= 0
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Polinoˆmios e
Exponenciais
Polilogaritmos e
Polinoˆmios
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Polilogaritmos e Polinoˆmios
• Qualquer polinomial cresce mais ra´pido assintoticamente
do que qualquer polilogaritmo:
• Ex.: (log n)1000000 = o(n0.000001)
Em geral
Para quaisquer constantes reais a e b, tal que a > 0:
(log n)b = o(na)
Pois
lim
n→∞
(log n)b
na
= 0
Ana´lise de
Algoritmos
113958
Aula 2
Roteiro
Notac¸a˜o
Assinto´tica
Ordenac¸a˜o por
crescimento
assinto´tico
Uso de
notac¸a˜o
assinto´tica em
equac¸o˜es
Uso de notac¸a˜o assinto´tica em equac¸o˜es
• O que significa f(n) = 2n4 + O(n)?
• O que significa 2o(n)?
• O que significa 2n2 +Θ(n) = Θ(n2)?
E´ verdade que 2O(n) = O(2n)?
	Roteiro
	Notação Assintótica
	Cota superior: f(n)=O(g(n))
	Cota inferior: f(n)=(g(n))
	Equivalência assintótica: f(n)=(g(n))
	Crescimento estritamente menor: f(n)=o(g(n))
	Crescimento estritamente maior: f(n)=(g(n))
	Ordenação por crescimento assintótico
	Polinômios e Exponenciais
	Polilogaritmos e Polinômios
	Uso de notação assintótica em equações

Outros materiais