SlideShare uma empresa Scribd logo
1 de 129
Baixar para ler offline
Aula 07 – An´alise Assint´otica de
Algoritmos: Nota¸c˜ao O e o
Norton Trevisan Roman
norton@usp.br
11 de setembro de 2018
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 1 / 28
Crescimento Assint´otico de Fun¸c˜oes
O custo da solu¸c˜ao aumenta com o tamanho n do
problema
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 2 / 28
Crescimento Assint´otico de Fun¸c˜oes
O custo da solu¸c˜ao aumenta com o tamanho n do
problema
O tamanho n fornece uma medida da dificuldade
para resolver o problema
Tempo necess´ario para resolver o problema aumenta quando
n cresce
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 2 / 28
Crescimento Assint´otico de Fun¸c˜oes
O custo da solu¸c˜ao aumenta com o tamanho n do
problema
O tamanho n fornece uma medida da dificuldade
para resolver o problema
Tempo necess´ario para resolver o problema aumenta quando
n cresce
Exemplo:
N´umero de compara¸c˜oes para achar o maior elemento de um
arranjo (array) ou para orden´a-lo aumenta com o tamanho
da entrada n.
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 2 / 28
Crescimento Assint´otico de Fun¸c˜oes
A escolha do algoritmo n˜ao ´e um problema cr´ıtico
quando n ´e pequeno
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
Crescimento Assint´otico de Fun¸c˜oes
A escolha do algoritmo n˜ao ´e um problema cr´ıtico
quando n ´e pequeno
O problema ´e quando n cresce
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
Crescimento Assint´otico de Fun¸c˜oes
A escolha do algoritmo n˜ao ´e um problema cr´ıtico
quando n ´e pequeno
O problema ´e quando n cresce
Por isso, ´e usual analisar o comportamento das
fun¸c˜oes de custo quando n ´e bastante grande
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
Crescimento Assint´otico de Fun¸c˜oes
A escolha do algoritmo n˜ao ´e um problema cr´ıtico
quando n ´e pequeno
O problema ´e quando n cresce
Por isso, ´e usual analisar o comportamento das
fun¸c˜oes de custo quando n ´e bastante grande
Analisa-se o comportamento assint´otico das fun¸c˜oes de custo
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
Crescimento Assint´otico de Fun¸c˜oes
A escolha do algoritmo n˜ao ´e um problema cr´ıtico
quando n ´e pequeno
O problema ´e quando n cresce
Por isso, ´e usual analisar o comportamento das
fun¸c˜oes de custo quando n ´e bastante grande
Analisa-se o comportamento assint´otico das fun¸c˜oes de custo
Representa o limite do comportamento do custo quando n
cresce
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
Crescimento Assint´otico de Fun¸c˜oes
O que significa “Comportamento Assint´otico”?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
Crescimento Assint´otico de Fun¸c˜oes
O que significa “Comportamento Assint´otico”?
O comportamento assint´otico descreve uma fun¸c˜ao
ou express˜ao com um limite ou ass´ıntota definidos
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
Crescimento Assint´otico de Fun¸c˜oes
O que significa “Comportamento Assint´otico”?
O comportamento assint´otico descreve uma fun¸c˜ao
ou express˜ao com um limite ou ass´ıntota definidos
A fun¸c˜ao pode se aproximar desse limite, na medida em que
a entrada muda, mas nunca o alcan¸car´a
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
Crescimento Assint´otico de Fun¸c˜oes
O que significa “Comportamento Assint´otico”?
O comportamento assint´otico descreve uma fun¸c˜ao
ou express˜ao com um limite ou ass´ıntota definidos
A fun¸c˜ao pode se aproximar desse limite, na medida em que
a entrada muda, mas nunca o alcan¸car´a
Ass´ıntota?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
Crescimento Assint´otico de Fun¸c˜oes
O que significa “Comportamento Assint´otico”?
O comportamento assint´otico descreve uma fun¸c˜ao
ou express˜ao com um limite ou ass´ıntota definidos
A fun¸c˜ao pode se aproximar desse limite, na medida em que
a entrada muda, mas nunca o alcan¸car´a
Ass´ıntota?
A linha da qual uma curva se aproxima enquanto caminha
ao infinito
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
Comportamento Assint´otico
Ass´ıntotas
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
Comportamento Assint´otico
Ass´ıntotas
Horizontais
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
Comportamento Assint´otico
Ass´ıntotas
Horizontais Verticais
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
Comportamento Assint´otico
Ass´ıntotas
Horizontais Verticais Obl´ıquas
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
Comportamento Assint´otico
Ass´ıntotas
Horizontais Verticais Obl´ıquas
Ex: x2−3x
2x−2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
Comportamento Assint´otico
Ass´ıntotas
Horizontais Verticais Obl´ıquas
Ex: x2−3x
2x−2
Possui uma ass´ıntota vertical em x = 1
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
Comportamento Assint´otico
Ass´ıntotas
Horizontais Verticais Obl´ıquas
Ex: x2−3x
2x−2
Possui uma ass´ıntota vertical em x = 1
E uma obl´ıqua em y =
x
2
− 1
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
Comportamento Assint´otico
E o que isso tem a ver com complexidade?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
Comportamento Assint´otico
E o que isso tem a ver com complexidade?
Seja f (n) a fun¸c˜ao de complexidade de um
algoritmo A
O comportamento assint´otico de f (n) representa o limite do
comportamento do custo (complexidade) de A quando n
cresce sem restri¸c˜oes
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
Comportamento Assint´otico
E o que isso tem a ver com complexidade?
Seja f (n) a fun¸c˜ao de complexidade de um
algoritmo A
O comportamento assint´otico de f (n) representa o limite do
comportamento do custo (complexidade) de A quando n
cresce sem restri¸c˜oes
Lembrando que a fun¸c˜ao de complexidade geralmente
considera apenas algumas opera¸c˜oes elementares, ou mesmo
uma ´unica opera¸c˜ao elementar (ex: o n´umero de
compara¸c˜oes)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
Comportamento Assint´otico
E o que isso tem a ver com complexidade?
Seja f (n) a fun¸c˜ao de complexidade de um
algoritmo A
O comportamento assint´otico de f (n) representa o limite do
comportamento do custo (complexidade) de A quando n
cresce sem restri¸c˜oes
Lembrando que a fun¸c˜ao de complexidade geralmente
considera apenas algumas opera¸c˜oes elementares, ou mesmo
uma ´unica opera¸c˜ao elementar (ex: o n´umero de
compara¸c˜oes)
A complexidade assint´otica relata o crescimento
assint´otico das opera¸c˜oes consideradas
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
Comportamento Assint´otico
E para que isso serve?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 7 / 28
Comportamento Assint´otico
E para que isso serve?
Definir limites para o comportamento do algoritmo,
identificando assim quando o barco vai afundar...
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 7 / 28
Comportamento Assint´otico
E para que isso serve?
Definir limites para o comportamento do algoritmo,
identificando assim quando o barco vai afundar...
Ex: 1 milh˜ao (106
) de opera¸c˜oes por segundo
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 7 / 28
Comportamento Assint´otico
E para que isso serve?
A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao
simples da eficiˆencia do algoritmo
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
Comportamento Assint´otico
E para que isso serve?
A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao
simples da eficiˆencia do algoritmo
Mesmo podendo determinar sua complexidade exata, o
c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
Comportamento Assint´otico
E para que isso serve?
A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao
simples da eficiˆencia do algoritmo
Mesmo podendo determinar sua complexidade exata, o
c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co
Para entradas grandes, as constantes multiplicativas e
termos de menor ordem s˜ao dominados pelos efeitos do
tamanho da entrada
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
Comportamento Assint´otico
E para que isso serve?
A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao
simples da eficiˆencia do algoritmo
Mesmo podendo determinar sua complexidade exata, o
c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co
Para entradas grandes, as constantes multiplicativas e
termos de menor ordem s˜ao dominados pelos efeitos do
tamanho da entrada
Nos permite tamb´em comparar o desempenho
relativo de algoritmos alternativos
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
Comportamento Assint´otico
E para que isso serve?
A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao
simples da eficiˆencia do algoritmo
Mesmo podendo determinar sua complexidade exata, o
c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co
Para entradas grandes, as constantes multiplicativas e
termos de menor ordem s˜ao dominados pelos efeitos do
tamanho da entrada
Nos permite tamb´em comparar o desempenho
relativo de algoritmos alternativos
Nos diz qual ser´a melhor quando a entrada cresce
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
Relacionamento Assint´otico
Defini¸c˜ao:
Uma fun¸c˜ao f (n) domina assintoticamente outra
fun¸c˜ao g(n) se existirem duas constantes positivas c
e m tais que, para n ≥ m, tem-se
|g(n)| ≤ c × |f (n)|.
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 9 / 28
Relacionamento Assint´otico
Defini¸c˜ao:
Uma fun¸c˜ao f (n) domina assintoticamente outra
fun¸c˜ao g(n) se existirem duas constantes positivas c
e m tais que, para n ≥ m, tem-se
|g(n)| ≤ c × |f (n)|.
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 9 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = n e f (n) = n2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = n e f (n) = n2
|n| ≤ |n2
| para todo n ∈ N
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = n e f (n) = n2
|n| ≤ |n2
| para todo n ∈ N
Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto,
f (n) domina assintoticamente g(n).
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = n e f (n) = n2
|n| ≤ |n2
| para todo n ∈ N
Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto,
f (n) domina assintoticamente g(n).
g(n) = n e f (n) = −n2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = n e f (n) = n2
|n| ≤ |n2
| para todo n ∈ N
Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto,
f (n) domina assintoticamente g(n).
g(n) = n e f (n) = −n2
|n| ≤ |−n2
| para todo n ∈ N (por ser m´odulo, o sinal n˜ao
importa)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = n e f (n) = n2
|n| ≤ |n2
| para todo n ∈ N
Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto,
f (n) domina assintoticamente g(n).
g(n) = n e f (n) = −n2
|n| ≤ |−n2
| para todo n ∈ N (por ser m´odulo, o sinal n˜ao
importa)
Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto,
f (n) domina assintoticamente g(n).
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = (n + 1)2
e f (n) = n2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = (n + 1)2
e f (n) = n2
Melhor por em um gr´afico
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = (n + 1)2
e f (n) = n2
Melhor por em um gr´afico
|n2
| ≤ |(n + 1)2
| para n ≥ 0
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = (n + 1)2
e f (n) = n2
Melhor por em um gr´afico
|n2
| ≤ |(n + 1)2
| para n ≥ 0
g(n) domina f (n)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = (n + 1)2
e f (n) = n2
Melhor por em um gr´afico
|n2
| ≤ |(n + 1)2
| para n ≥ 0
g(n) domina f (n)
Ser´a somente isso?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
Relacionamento Assint´otico
Quem domina quem?
g(n) = (n + 1)2
e f (n) = n2
Melhor por em um gr´afico
|n2
| ≤ |(n + 1)2
| para n ≥ 0
g(n) domina f (n)
Ser´a somente isso?
N˜ao h´a como f (n) dominar
g(n)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
Relacionamento Assint´otico
Quem domina quem?
Lembre que a defini¸c˜ao envolve
tamb´em uma constante
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
Relacionamento Assint´otico
Quem domina quem?
Lembre que a defini¸c˜ao envolve
tamb´em uma constante
Suponha que queremos
g(n) ≤ cf (n)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
Relacionamento Assint´otico
Quem domina quem?
Lembre que a defini¸c˜ao envolve
tamb´em uma constante
Suponha que queremos
g(n) ≤ cf (n)
Ent˜ao |(n + 1)2
| ≤ |cn2
|
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
Relacionamento Assint´otico
Quem domina quem?
Lembre que a defini¸c˜ao envolve
tamb´em uma constante
Suponha que queremos
g(n) ≤ cf (n)
Ent˜ao |(n + 1)2
| ≤ |cn2
|
Mas, para isso, basta que
|(n + 1)2
| ≤ |(
√
cn)2
| ou
|n + 1| ≤ |
√
cn|
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
Relacionamento Assint´otico
Quem domina quem?
Lembre que a defini¸c˜ao envolve
tamb´em uma constante
Suponha que queremos
g(n) ≤ cf (n)
Ent˜ao |(n + 1)2
| ≤ |cn2
|
Mas, para isso, basta que
|(n + 1)2
| ≤ |(
√
cn)2
| ou
|n + 1| ≤ |
√
cn|
Se
√
c = 2, ou seja, c = 4, isso ´e verdade, para n ≥ 1
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
Relacionamento Assint´otico
Quem domina quem?
Ent˜ao temos que g(n) domina
f (n), pois |n2
| ≤ |(n + 1)2
|,
n ≥ 0
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 13 / 28
Relacionamento Assint´otico
Quem domina quem?
Ent˜ao temos que g(n) domina
f (n), pois |n2
| ≤ |(n + 1)2
|,
n ≥ 0
e f (n) domina g(n), pois
|(n + 1)2
| ≤ |4n2
|, n ≥ 1
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 13 / 28
Relacionamento Assint´otico
Quem domina quem?
Ent˜ao temos que g(n) domina
f (n), pois |n2
| ≤ |(n + 1)2
|,
n ≥ 0
e f (n) domina g(n), pois
|(n + 1)2
| ≤ |4n2
|, n ≥ 1
Nesse caso, dizemos que f (n) e
g(n) dominam assintoticamente
uma a outra
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 13 / 28
Nota¸c˜ao O
Knuth (1968) criou a nota¸c˜ao O (O grande) para
expressar que f (n) domina assintoticamente g(n)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
Nota¸c˜ao O
Knuth (1968) criou a nota¸c˜ao O (O grande) para
expressar que f (n) domina assintoticamente g(n)
Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no
m´aximo f (n)”
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
Nota¸c˜ao O
Knuth (1968) criou a nota¸c˜ao O (O grande) para
expressar que f (n) domina assintoticamente g(n)
Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no
m´aximo f (n)”
E para que serve isso?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
Nota¸c˜ao O
Knuth (1968) criou a nota¸c˜ao O (O grande) para
expressar que f (n) domina assintoticamente g(n)
Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no
m´aximo f (n)”
E para que serve isso?
Muitas vezes calcular a fun¸c˜ao de complexidade g(n) de um
algoritmo ´e complicado
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
Nota¸c˜ao O
Knuth (1968) criou a nota¸c˜ao O (O grande) para
expressar que f (n) domina assintoticamente g(n)
Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no
m´aximo f (n)”
E para que serve isso?
Muitas vezes calcular a fun¸c˜ao de complexidade g(n) de um
algoritmo ´e complicado
´E mais f´acil determinar que g(n) ´e O(f (n)), isto ´e, que
assintoticamente g(n) cresce no m´aximo como f (n)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
Nota¸c˜ao O
Knuth (1968) criou a nota¸c˜ao O (O grande) para
expressar que f (n) domina assintoticamente g(n)
Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no
m´aximo f (n)”
E para que serve isso?
Muitas vezes calcular a fun¸c˜ao de complexidade g(n) de um
algoritmo ´e complicado
´E mais f´acil determinar que g(n) ´e O(f (n)), isto ´e, que
assintoticamente g(n) cresce no m´aximo como f (n)
Ex: Se dizemos que T(n) = O(n2
), significa que existem
constantes c e m tais que, para n ≥ m, T(n) ≤ cn2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
Nota¸c˜ao O
Defini¸c˜ao
Uma fun¸c˜ao g(n) ´e O(f (n)) se existirem constantes
positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo
n ≥ m
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 15 / 28
Nota¸c˜ao O
Defini¸c˜ao
Uma fun¸c˜ao g(n) ´e O(f (n)) se existirem constantes
positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo
n ≥ m
Informalmente, dizemos
que, se g(n) ∈ O(f (n)),
ent˜ao g(n) cresce no
m´aximo t˜ao rapidamente
quanto f (n)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 15 / 28
Nota¸c˜ao O
Defini¸c˜ao
Uma fun¸c˜ao g(n) ´e O(f (n)) se existirem constantes
positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo
n ≥ m
Informalmente, dizemos
que, se g(n) ∈ O(f (n)),
ent˜ao g(n) cresce no
m´aximo t˜ao rapidamente
quanto f (n)
Trata-se ent˜ao de um limite assint´otico superior
para g(n)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 15 / 28
Nota¸c˜ao O
Exemplo
3
2
n2
− 2n ∈ O(n2
)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
Nota¸c˜ao O
Exemplo
3
2
n2
− 2n ∈ O(n2
)?
Fazendo c = 3
2
temos 3
2
n2
− 2n ≤ 3
2
n2
, para m ≥ 2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
Nota¸c˜ao O
Exemplo
3
2
n2
− 2n ∈ O(n2
)?
Fazendo c = 3
2
temos 3
2
n2
− 2n ≤ 3
2
n2
, para m ≥ 2
Outras constantes podem existir, mas o que importa ´e que
exista alguma escolha para as constantes
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
Nota¸c˜ao O
Exemplo
3
2
n2
− 2n ∈ O(n2
)?
Fazendo c = 3
2
temos 3
2
n2
− 2n ≤ 3
2
n2
, para m ≥ 2
Outras constantes podem existir, mas o que importa ´e que
exista alguma escolha para as constantes
(n + 1)2
∈ O(n2
)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
Nota¸c˜ao O
Exemplo
3
2
n2
− 2n ∈ O(n2
)?
Fazendo c = 3
2
temos 3
2
n2
− 2n ≤ 3
2
n2
, para m ≥ 2
Outras constantes podem existir, mas o que importa ´e que
exista alguma escolha para as constantes
(n + 1)2
∈ O(n2
)?
Fazendo c = 4, m = 1, temos (n + 1)2
≤ 4n2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
Nota¸c˜ao O
Exemplo
3
2
n2
− 2n ∈ O(n2
)?
Fazendo c = 3
2
temos 3
2
n2
− 2n ≤ 3
2
n2
, para m ≥ 2
Outras constantes podem existir, mas o que importa ´e que
exista alguma escolha para as constantes
(n + 1)2
∈ O(n2
)?
Fazendo c = 4, m = 1, temos (n + 1)2
≤ 4n2
(n + 1)2
∈ O(n2
) para n ≥ 1
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
Nota¸c˜ao O
Exemplo
3n3
+ 2n2
+ n ∈ O(n3
)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
Nota¸c˜ao O
Exemplo
3n3
+ 2n2
+ n ∈ O(n3
)?
Basta mostrar que 3n3
+ 2n2
+ n ≤ 6n3
, para n ≥ 0 (ou
seja, c = 6 e m = 0)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
Nota¸c˜ao O
Exemplo
3n3
+ 2n2
+ n ∈ O(n3
)?
Basta mostrar que 3n3
+ 2n2
+ n ≤ 6n3
, para n ≥ 0 (ou
seja, c = 6 e m = 0)
3n3
+ 2n2
+ n ∈ O(n4
)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
Nota¸c˜ao O
Exemplo
3n3
+ 2n2
+ n ∈ O(n3
)?
Basta mostrar que 3n3
+ 2n2
+ n ≤ 6n3
, para n ≥ 0 (ou
seja, c = 6 e m = 0)
3n3
+ 2n2
+ n ∈ O(n4
)?
Sim, mas essa afirma¸c˜ao ´e mais fraca que dizer que
3n3
+ 2n2
+ n ´e O(n3
)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
Nota¸c˜ao O
Exemplo
3n3
+ 2n2
+ n ∈ O(n3
)?
Basta mostrar que 3n3
+ 2n2
+ n ≤ 6n3
, para n ≥ 0 (ou
seja, c = 6 e m = 0)
3n3
+ 2n2
+ n ∈ O(n4
)?
Sim, mas essa afirma¸c˜ao ´e mais fraca que dizer que
3n3
+ 2n2
+ n ´e O(n3
)
Escolhemos ent˜ao o limite “mais baixo”, pois nos interessa o
assintoticamente mais pr´oximo de 3n3
+ 2n2
+ n
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
Nota¸c˜ao O
Exemplo
3n3
+ 2n2
+ n ∈ O(n3
)?
Basta mostrar que 3n3
+ 2n2
+ n ≤ 6n3
, para n ≥ 0 (ou
seja, c = 6 e m = 0)
3n3
+ 2n2
+ n ∈ O(n4
)?
Sim, mas essa afirma¸c˜ao ´e mais fraca que dizer que
3n3
+ 2n2
+ n ´e O(n3
)
Escolhemos ent˜ao o limite “mais baixo”, pois nos interessa o
assintoticamente mais pr´oximo de 3n3
+ 2n2
+ n
Isso, contudo, n˜ao implica estar errado que ´e O(n4
)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
c × O(f (n)) = O(f (n)) (c: constante)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
c × O(f (n)) = O(f (n)) (c: constante)
O(f (n)) + O(f (n)) = O(f (n))
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
c × O(f (n)) = O(f (n)) (c: constante)
O(f (n)) + O(f (n)) = O(f (n))
O(O(f (n))) = O(f (n))
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
c × O(f (n)) = O(f (n)) (c: constante)
O(f (n)) + O(f (n)) = O(f (n))
O(O(f (n))) = O(f (n))
O(f (n) + g(n)) = O(f (n)) + O(g(n))
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
c × O(f (n)) = O(f (n)) (c: constante)
O(f (n)) + O(f (n)) = O(f (n))
O(O(f (n))) = O(f (n))
O(f (n) + g(n)) = O(f (n)) + O(g(n))
O(f (n)) + O(g(n)) = O(max(f (n), g(n)))
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
c × O(f (n)) = O(f (n)) (c: constante)
O(f (n)) + O(f (n)) = O(f (n))
O(O(f (n))) = O(f (n))
O(f (n) + g(n)) = O(f (n)) + O(g(n))
O(f (n)) + O(g(n)) = O(max(f (n), g(n)))
O(f (n))O(g(n)) = O(f (n)g(n))
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
f (n) = O(f (n))
c × O(f (n)) = O(f (n)) (c: constante)
O(f (n)) + O(f (n)) = O(f (n))
O(O(f (n))) = O(f (n))
O(f (n) + g(n)) = O(f (n)) + O(g(n))
O(f (n)) + O(g(n)) = O(max(f (n), g(n)))
O(f (n))O(g(n)) = O(f (n)g(n))
f (n)O(g(n)) = O(f (n)g(n))
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n)))
pode ser usada para calcular o tempo de execu¸c˜ao
de uma sequˆencia de trechos de um programa
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n)))
pode ser usada para calcular o tempo de execu¸c˜ao
de uma sequˆencia de trechos de um programa
Ex: Suponha 3 trechos: O(n), O(n2
) e O(nlog(n)).
Qual o tempo de execu¸c˜ao do algoritmo como um
todo?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n)))
pode ser usada para calcular o tempo de execu¸c˜ao
de uma sequˆencia de trechos de um programa
Ex: Suponha 3 trechos: O(n), O(n2
) e O(nlog(n)).
Qual o tempo de execu¸c˜ao do algoritmo como um
todo?
Lembre-se que o tempo de execu¸c˜ao ´e a soma dos tempos
de cada trecho
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n)))
pode ser usada para calcular o tempo de execu¸c˜ao
de uma sequˆencia de trechos de um programa
Ex: Suponha 3 trechos: O(n), O(n2
) e O(nlog(n)).
Qual o tempo de execu¸c˜ao do algoritmo como um
todo?
Lembre-se que o tempo de execu¸c˜ao ´e a soma dos tempos
de cada trecho
O(n)+O(n2
)+O(nlog(n)) = max(O(n), O(n2
), O(nlog(n)))
= O(n2
)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Isso facilita muito o c´alculo do limite superior para a
complexidade de um algoritmo
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Isso facilita muito o c´alculo do limite superior para a
complexidade de um algoritmo
Ex: 3n3
+ 2n2
+ n ∈ O(n3
)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Isso facilita muito o c´alculo do limite superior para a
complexidade de um algoritmo
Ex: 3n3
+ 2n2
+ n ∈ O(n3
)?
Sim, porque o termo de maior ordem (3n3
) ´e claramente
O(n3
)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Isso facilita muito o c´alculo do limite superior para a
complexidade de um algoritmo
Ex: 3n3
+ 2n2
+ n ∈ O(n3
)?
Sim, porque o termo de maior ordem (3n3
) ´e claramente
O(n3
)
Ent˜ao, pela regra, este ser´a o limite da express˜ao como um
todo
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Isso facilita muito o c´alculo do limite superior para a
complexidade de um algoritmo
Ex: 3n3
+ 2n2
+ n ∈ O(n3
)?
Sim, porque o termo de maior ordem (3n3
) ´e claramente
O(n3
)
Ent˜ao, pela regra, este ser´a o limite da express˜ao como um
todo
N˜ao h´a necessidade de provar usando os termos de menor
ordem
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Por vezes basta observar a estrutura do algoritmo
para saber sua complexidade
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Por vezes basta observar a estrutura do algoritmo
para saber sua complexidade
Como quando h´a um la¸co encadeado em outro, ambos
proporcionais `a entrada
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Por vezes basta observar a estrutura do algoritmo
para saber sua complexidade
Como quando h´a um la¸co encadeado em outro, ambos
proporcionais `a entrada
Nesse caso, essa parte ´e O(n2
) e, se nenhuma outra for mais
alta, ent˜ao esse ´e o limite do algoritmo
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
Nota¸c˜ao O
Opera¸c˜oes com a nota¸c˜ao O
Por vezes basta observar a estrutura do algoritmo
para saber sua complexidade
Como quando h´a um la¸co encadeado em outro, ambos
proporcionais `a entrada
Nesse caso, essa parte ´e O(n2
) e, se nenhuma outra for mais
alta, ent˜ao esse ´e o limite do algoritmo
Mais do que isso, sendo O um limite superior, se o
calcularmos no pior caso teremos um limite superior
para toda e qualquer entrada
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos cujas complexidades s˜ao
equivalentes?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos cujas complexidades s˜ao
equivalentes?
Ou seja, quando f (n) e g(n) dominam assintoticamente
uma `a outra
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos cujas complexidades s˜ao
equivalentes?
Ou seja, quando f (n) e g(n) dominam assintoticamente
uma `a outra
Nesses casos, o comportamento assint´otico n˜ao
serve para a compara¸c˜ao
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos cujas complexidades s˜ao
equivalentes?
Ou seja, quando f (n) e g(n) dominam assintoticamente
uma `a outra
Nesses casos, o comportamento assint´otico n˜ao
serve para a compara¸c˜ao
Teremos que ver sua complexidade com mais detalhes,
observando as constantes
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos quando n˜ao teremos
entradas grandes?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos quando n˜ao teremos
entradas grandes?
Nesse caso, pode ocorrer que um algoritmo assintoticamente
mais lento seja mais r´apido para entradas pequenas
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos quando n˜ao teremos
entradas grandes?
Nesse caso, pode ocorrer que um algoritmo assintoticamente
mais lento seja mais r´apido para entradas pequenas
Ex: um programa tem f (n) = 100n, e outro
g(n) = 2n2
. Qual dos dois ´e melhor?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos quando n˜ao teremos
entradas grandes?
Nesse caso, pode ocorrer que um algoritmo assintoticamente
mais lento seja mais r´apido para entradas pequenas
Ex: um programa tem f (n) = 100n, e outro
g(n) = 2n2
. Qual dos dois ´e melhor?
Depende do tamanho do problema
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos quando n˜ao teremos
entradas grandes?
Nesse caso, pode ocorrer que um algoritmo assintoticamente
mais lento seja mais r´apido para entradas pequenas
Ex: um programa tem f (n) = 100n, e outro
g(n) = 2n2
. Qual dos dois ´e melhor?
Depende do tamanho do problema
Para n < 50, o programa com tempo 2n2
´e melhor do que o
de 100n
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
Nota¸c˜ao O
Problemas
Como comparar algoritmos quando n˜ao teremos
entradas grandes?
Nesse caso, pode ocorrer que um algoritmo assintoticamente
mais lento seja mais r´apido para entradas pequenas
Ex: um programa tem f (n) = 100n, e outro
g(n) = 2n2
. Qual dos dois ´e melhor?
Depende do tamanho do problema
Para n < 50, o programa com tempo 2n2
´e melhor do que o
de 100n
Ent˜ao, se nunca teremos n ≥ 50, o programa com 2n2
´e
melhor
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
Nota¸c˜ao o
Defini¸c˜ao
Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante
c > 0, existe uma constante m > 0 tal que
0 ≤ g(n) < cf (n), para todo n ≥ m
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
Nota¸c˜ao o
Defini¸c˜ao
Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante
c > 0, existe uma constante m > 0 tal que
0 ≤ g(n) < cf (n), para todo n ≥ m
Informalmente, dizemos que, se g(n) ∈ o(f (n)),
ent˜ao g(n) cresce mais lentamente que f (n)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
Nota¸c˜ao o
Defini¸c˜ao
Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante
c > 0, existe uma constante m > 0 tal que
0 ≤ g(n) < cf (n), para todo n ≥ m
Informalmente, dizemos que, se g(n) ∈ o(f (n)),
ent˜ao g(n) cresce mais lentamente que f (n)
Intuitivamente, na nota¸c˜ao o a fun¸c˜ao g(n) tem crescimento
muito menor que f (n) quando n tende para o infinito
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
Nota¸c˜ao o
Defini¸c˜ao
Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante
c > 0, existe uma constante m > 0 tal que
0 ≤ g(n) < cf (n), para todo n ≥ m
Informalmente, dizemos que, se g(n) ∈ o(f (n)),
ent˜ao g(n) cresce mais lentamente que f (n)
Intuitivamente, na nota¸c˜ao o a fun¸c˜ao g(n) tem crescimento
muito menor que f (n) quando n tende para o infinito
Ou seja, lim
n→∞
g(n)
f (n)
= 0
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
Diferen¸ca entre O e o
O(f (n)) = {g(n): existem constantes positivas c e
m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m}
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
Diferen¸ca entre O e o
O(f (n)) = {g(n): existem constantes positivas c e
m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m}
A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma
constante c > 0
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
Diferen¸ca entre O e o
O(f (n)) = {g(n): existem constantes positivas c e
m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m}
A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma
constante c > 0
Basta acharmos um c e um m
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
Diferen¸ca entre O e o
O(f (n)) = {g(n): existem constantes positivas c e
m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m}
A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma
constante c > 0
Basta acharmos um c e um m
o(f (n)) = {g(n): para toda constante positiva c,
existe uma constante m > 0 tal que
0 ≤ g(n) < cf (n), para todo n ≥ m}.
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
Diferen¸ca entre O e o
O(f (n)) = {g(n): existem constantes positivas c e
m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m}
A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma
constante c > 0
Basta acharmos um c e um m
o(f (n)) = {g(n): para toda constante positiva c,
existe uma constante m > 0 tal que
0 ≤ g(n) < cf (n), para todo n ≥ m}.
A express˜ao 0 ≤ g(n) < cf (n) ´e v´alida para toda constante
c > 0
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
Diferen¸ca entre O e o
O(f (n)) = {g(n): existem constantes positivas c e
m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m}
A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma
constante c > 0
Basta acharmos um c e um m
o(f (n)) = {g(n): para toda constante positiva c,
existe uma constante m > 0 tal que
0 ≤ g(n) < cf (n), para todo n ≥ m}.
A express˜ao 0 ≤ g(n) < cf (n) ´e v´alida para toda constante
c > 0
Para todo c temos que ter um m
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
Nota¸c˜ao o
Exemplo
1000n2
∈ o(n3
)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
Nota¸c˜ao o
Exemplo
1000n2
∈ o(n3
)?
Buscamos um m tal que, para todo c e n ≥ m,
1000n2
< cn3
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
Nota¸c˜ao o
Exemplo
1000n2
∈ o(n3
)?
Buscamos um m tal que, para todo c e n ≥ m,
1000n2
< cn3
⇒ 1000 < cn (dividindo ambos os lados por n2
)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
Nota¸c˜ao o
Exemplo
1000n2
∈ o(n3
)?
Buscamos um m tal que, para todo c e n ≥ m,
1000n2
< cn3
⇒ 1000 < cn (dividindo ambos os lados por n2
)
⇒ n >
1000
c
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
Nota¸c˜ao o
Exemplo
1000n2
∈ o(n3
)?
Buscamos um m tal que, para todo c e n ≥ m,
1000n2
< cn3
⇒ 1000 < cn (dividindo ambos os lados por n2
)
⇒ n >
1000
c
Ou seja, para todo valor de c, um m que satisfaz a defini¸c˜ao
´e m =
1000
c
+ 1 (pois n ≥ m e n > 1000
c
)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
Nota¸c˜ao o
Exemplo
2n2
∈ o(n2
)?
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
Nota¸c˜ao o
Exemplo
2n2
∈ o(n2
)?
Buscamos um m tal que, para todo c e n ≥ m, 2n2
< cn2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
Nota¸c˜ao o
Exemplo
2n2
∈ o(n2
)?
Buscamos um m tal que, para todo c e n ≥ m, 2n2
< cn2
Mas 2n2
< cn2
⇒ c > 2 (caso em que vale para todo n > 0)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
Nota¸c˜ao o
Exemplo
2n2
∈ o(n2
)?
Buscamos um m tal que, para todo c e n ≥ m, 2n2
< cn2
Mas 2n2
< cn2
⇒ c > 2 (caso em que vale para todo n > 0)
Ou seja, n˜ao h´a m tal que, para todo c e n ≥ m, 2n2
< cn2
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
Nota¸c˜ao o
Exemplo
2n2
∈ o(n2
)?
Buscamos um m tal que, para todo c e n ≥ m, 2n2
< cn2
Mas 2n2
< cn2
⇒ c > 2 (caso em que vale para todo n > 0)
Ou seja, n˜ao h´a m tal que, para todo c e n ≥ m, 2n2
< cn2
Logo, 2n2
∈ o(n2
)
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
Referˆencias
Ziviani, Nivio. Projeto de Algoritmos: com implementa¸c˜oes
em Java e C++. Cengage. 2007.
Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L.,
Stein, Clifford. Introduction to Algorithms. 2a ed. MIT Press,
2001.
Gersting, Judith L. Fundamentos Matem´aticos para a Ciˆencia
da Computa¸c˜ao. 3a ed. LTC. 1993.
https://www.chegg.com/tutors/
what-is-Asymptotic-and-Unbounded-Behavior/
https://www.mathsisfun.com/algebra/asymptote.html
Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 28 / 28

Mais conteúdo relacionado

Mais procurados

(ACH2002) Introdução à Análise de Algoritmos - Aula 08
(ACH2002) Introdução à Análise de Algoritmos - Aula 08(ACH2002) Introdução à Análise de Algoritmos - Aula 08
(ACH2002) Introdução à Análise de Algoritmos - Aula 08Norton Trevisan Roman
 
(ACH2002) Introdução à Análise de Algoritmos - Aula 18
(ACH2002) Introdução à Análise de Algoritmos - Aula 18(ACH2002) Introdução à Análise de Algoritmos - Aula 18
(ACH2002) Introdução à Análise de Algoritmos - Aula 18Norton Trevisan Roman
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvRCiro Matheus
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01thomasdacosta
 
Apresentacao N P Completude Loiane
Apresentacao  N P Completude  LoianeApresentacao  N P Completude  Loiane
Apresentacao N P Completude LoianeLoiane Groner
 

Mais procurados (7)

(ACH2002) Introdução à Análise de Algoritmos - Aula 08
(ACH2002) Introdução à Análise de Algoritmos - Aula 08(ACH2002) Introdução à Análise de Algoritmos - Aula 08
(ACH2002) Introdução à Análise de Algoritmos - Aula 08
 
(ACH2002) Introdução à Análise de Algoritmos - Aula 18
(ACH2002) Introdução à Análise de Algoritmos - Aula 18(ACH2002) Introdução à Análise de Algoritmos - Aula 18
(ACH2002) Introdução à Análise de Algoritmos - Aula 18
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Oficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvROficina de Lógica de Programação - Uso do Scratch e do GvR
Oficina de Lógica de Programação - Uso do Scratch e do GvR
 
Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01Algoritmos e Técnicas de Programação - Aula 01
Algoritmos e Técnicas de Programação - Aula 01
 
Apresentacao N P Completude Loiane
Apresentacao  N P Completude  LoianeApresentacao  N P Completude  Loiane
Apresentacao N P Completude Loiane
 

Mais de Norton Trevisan Roman

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06Norton Trevisan Roman
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05Norton Trevisan Roman
 

Mais de Norton Trevisan Roman (20)

(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24(ACH2044) Inteligência Artificial - Aula 24
(ACH2044) Inteligência Artificial - Aula 24
 
(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23(ACH2044) Inteligência Artificial - Aula 23
(ACH2044) Inteligência Artificial - Aula 23
 
(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22(ACH2044) Inteligência Artificial - Aula 22
(ACH2044) Inteligência Artificial - Aula 22
 
(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21(ACH2044) Inteligência Artificial - Aula 21
(ACH2044) Inteligência Artificial - Aula 21
 
(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20(ACH2044) Inteligência Artificial - Aula 20
(ACH2044) Inteligência Artificial - Aula 20
 
(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19(ACH2044) Inteligência Artificial - Aula 19
(ACH2044) Inteligência Artificial - Aula 19
 
(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18(ACH2044) Inteligência Artificial - Aula 18
(ACH2044) Inteligência Artificial - Aula 18
 
(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17(ACH2044) Inteligência Artificial - Aula 17
(ACH2044) Inteligência Artificial - Aula 17
 
(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16(ACH2044) Inteligência Artificial - Aula 16
(ACH2044) Inteligência Artificial - Aula 16
 
(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15(ACH2044) Inteligência Artificial - Aula 15
(ACH2044) Inteligência Artificial - Aula 15
 
(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14(ACH2044) Inteligência Artificial - Aula 14
(ACH2044) Inteligência Artificial - Aula 14
 
(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13(ACH2044) Inteligência Artificial - Aula 13
(ACH2044) Inteligência Artificial - Aula 13
 
(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12(ACH2044) Inteligência Artificial - Aula 12
(ACH2044) Inteligência Artificial - Aula 12
 
(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11(ACH2044) Inteligência Artificial - Aula 11
(ACH2044) Inteligência Artificial - Aula 11
 
(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10(ACH2044) Inteligência Artificial - Aula 10
(ACH2044) Inteligência Artificial - Aula 10
 
(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09(ACH2044) Inteligência Artificial - Aula 09
(ACH2044) Inteligência Artificial - Aula 09
 
(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08(ACH2044) Inteligência Artificial - Aula 08
(ACH2044) Inteligência Artificial - Aula 08
 
(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07(ACH2044) Inteligência Artificial - Aula 07
(ACH2044) Inteligência Artificial - Aula 07
 
(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06(ACH2044) Inteligência Artificial - Aula 06
(ACH2044) Inteligência Artificial - Aula 06
 
(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05(ACH2044) Inteligência Artificial - Aula 05
(ACH2044) Inteligência Artificial - Aula 05
 

Último

Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxSamiraMiresVieiradeM
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfFernandaMota99
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfMárcio Azevedo
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptxMarlene Cunhada
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfjanainadfsilva
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxTainTorres4
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 

Último (20)

Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptxPLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
PLANOS E EIXOS DO CORPO HUMANO.educacao física pptx
 
Aula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdfAula de História Ensino Médio Mesopotâmia.pdf
Aula de História Ensino Médio Mesopotâmia.pdf
 
Revista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdfRevista-Palavra-Viva-Profetas-Menores (1).pdf
Revista-Palavra-Viva-Profetas-Menores (1).pdf
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
VARIEDADES LINGUÍSTICAS - 1. pptx
VARIEDADES        LINGUÍSTICAS - 1. pptxVARIEDADES        LINGUÍSTICAS - 1. pptx
VARIEDADES LINGUÍSTICAS - 1. pptx
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdfPortfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
Portfolio_Trilha_Meio_Ambiente_e_Sociedade.pdf
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptxJOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
JOGO FATO OU FAKE - ATIVIDADE LUDICA(1).pptx
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
CINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULACINEMATICA DE LOS MATERIALES Y PARTICULA
CINEMATICA DE LOS MATERIALES Y PARTICULA
 

Análise Assintótica de Algoritmos

  • 1. Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o Norton Trevisan Roman norton@usp.br 11 de setembro de 2018 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 1 / 28
  • 2. Crescimento Assint´otico de Fun¸c˜oes O custo da solu¸c˜ao aumenta com o tamanho n do problema Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 2 / 28
  • 3. Crescimento Assint´otico de Fun¸c˜oes O custo da solu¸c˜ao aumenta com o tamanho n do problema O tamanho n fornece uma medida da dificuldade para resolver o problema Tempo necess´ario para resolver o problema aumenta quando n cresce Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 2 / 28
  • 4. Crescimento Assint´otico de Fun¸c˜oes O custo da solu¸c˜ao aumenta com o tamanho n do problema O tamanho n fornece uma medida da dificuldade para resolver o problema Tempo necess´ario para resolver o problema aumenta quando n cresce Exemplo: N´umero de compara¸c˜oes para achar o maior elemento de um arranjo (array) ou para orden´a-lo aumenta com o tamanho da entrada n. Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 2 / 28
  • 5. Crescimento Assint´otico de Fun¸c˜oes A escolha do algoritmo n˜ao ´e um problema cr´ıtico quando n ´e pequeno Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
  • 6. Crescimento Assint´otico de Fun¸c˜oes A escolha do algoritmo n˜ao ´e um problema cr´ıtico quando n ´e pequeno O problema ´e quando n cresce Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
  • 7. Crescimento Assint´otico de Fun¸c˜oes A escolha do algoritmo n˜ao ´e um problema cr´ıtico quando n ´e pequeno O problema ´e quando n cresce Por isso, ´e usual analisar o comportamento das fun¸c˜oes de custo quando n ´e bastante grande Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
  • 8. Crescimento Assint´otico de Fun¸c˜oes A escolha do algoritmo n˜ao ´e um problema cr´ıtico quando n ´e pequeno O problema ´e quando n cresce Por isso, ´e usual analisar o comportamento das fun¸c˜oes de custo quando n ´e bastante grande Analisa-se o comportamento assint´otico das fun¸c˜oes de custo Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
  • 9. Crescimento Assint´otico de Fun¸c˜oes A escolha do algoritmo n˜ao ´e um problema cr´ıtico quando n ´e pequeno O problema ´e quando n cresce Por isso, ´e usual analisar o comportamento das fun¸c˜oes de custo quando n ´e bastante grande Analisa-se o comportamento assint´otico das fun¸c˜oes de custo Representa o limite do comportamento do custo quando n cresce Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 3 / 28
  • 10. Crescimento Assint´otico de Fun¸c˜oes O que significa “Comportamento Assint´otico”? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
  • 11. Crescimento Assint´otico de Fun¸c˜oes O que significa “Comportamento Assint´otico”? O comportamento assint´otico descreve uma fun¸c˜ao ou express˜ao com um limite ou ass´ıntota definidos Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
  • 12. Crescimento Assint´otico de Fun¸c˜oes O que significa “Comportamento Assint´otico”? O comportamento assint´otico descreve uma fun¸c˜ao ou express˜ao com um limite ou ass´ıntota definidos A fun¸c˜ao pode se aproximar desse limite, na medida em que a entrada muda, mas nunca o alcan¸car´a Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
  • 13. Crescimento Assint´otico de Fun¸c˜oes O que significa “Comportamento Assint´otico”? O comportamento assint´otico descreve uma fun¸c˜ao ou express˜ao com um limite ou ass´ıntota definidos A fun¸c˜ao pode se aproximar desse limite, na medida em que a entrada muda, mas nunca o alcan¸car´a Ass´ıntota? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
  • 14. Crescimento Assint´otico de Fun¸c˜oes O que significa “Comportamento Assint´otico”? O comportamento assint´otico descreve uma fun¸c˜ao ou express˜ao com um limite ou ass´ıntota definidos A fun¸c˜ao pode se aproximar desse limite, na medida em que a entrada muda, mas nunca o alcan¸car´a Ass´ıntota? A linha da qual uma curva se aproxima enquanto caminha ao infinito Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 4 / 28
  • 15. Comportamento Assint´otico Ass´ıntotas Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
  • 16. Comportamento Assint´otico Ass´ıntotas Horizontais Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
  • 17. Comportamento Assint´otico Ass´ıntotas Horizontais Verticais Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
  • 18. Comportamento Assint´otico Ass´ıntotas Horizontais Verticais Obl´ıquas Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
  • 19. Comportamento Assint´otico Ass´ıntotas Horizontais Verticais Obl´ıquas Ex: x2−3x 2x−2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
  • 20. Comportamento Assint´otico Ass´ıntotas Horizontais Verticais Obl´ıquas Ex: x2−3x 2x−2 Possui uma ass´ıntota vertical em x = 1 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
  • 21. Comportamento Assint´otico Ass´ıntotas Horizontais Verticais Obl´ıquas Ex: x2−3x 2x−2 Possui uma ass´ıntota vertical em x = 1 E uma obl´ıqua em y = x 2 − 1 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 5 / 28
  • 22. Comportamento Assint´otico E o que isso tem a ver com complexidade? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
  • 23. Comportamento Assint´otico E o que isso tem a ver com complexidade? Seja f (n) a fun¸c˜ao de complexidade de um algoritmo A O comportamento assint´otico de f (n) representa o limite do comportamento do custo (complexidade) de A quando n cresce sem restri¸c˜oes Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
  • 24. Comportamento Assint´otico E o que isso tem a ver com complexidade? Seja f (n) a fun¸c˜ao de complexidade de um algoritmo A O comportamento assint´otico de f (n) representa o limite do comportamento do custo (complexidade) de A quando n cresce sem restri¸c˜oes Lembrando que a fun¸c˜ao de complexidade geralmente considera apenas algumas opera¸c˜oes elementares, ou mesmo uma ´unica opera¸c˜ao elementar (ex: o n´umero de compara¸c˜oes) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
  • 25. Comportamento Assint´otico E o que isso tem a ver com complexidade? Seja f (n) a fun¸c˜ao de complexidade de um algoritmo A O comportamento assint´otico de f (n) representa o limite do comportamento do custo (complexidade) de A quando n cresce sem restri¸c˜oes Lembrando que a fun¸c˜ao de complexidade geralmente considera apenas algumas opera¸c˜oes elementares, ou mesmo uma ´unica opera¸c˜ao elementar (ex: o n´umero de compara¸c˜oes) A complexidade assint´otica relata o crescimento assint´otico das opera¸c˜oes consideradas Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 6 / 28
  • 26. Comportamento Assint´otico E para que isso serve? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 7 / 28
  • 27. Comportamento Assint´otico E para que isso serve? Definir limites para o comportamento do algoritmo, identificando assim quando o barco vai afundar... Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 7 / 28
  • 28. Comportamento Assint´otico E para que isso serve? Definir limites para o comportamento do algoritmo, identificando assim quando o barco vai afundar... Ex: 1 milh˜ao (106 ) de opera¸c˜oes por segundo Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 7 / 28
  • 29. Comportamento Assint´otico E para que isso serve? A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao simples da eficiˆencia do algoritmo Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
  • 30. Comportamento Assint´otico E para que isso serve? A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao simples da eficiˆencia do algoritmo Mesmo podendo determinar sua complexidade exata, o c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
  • 31. Comportamento Assint´otico E para que isso serve? A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao simples da eficiˆencia do algoritmo Mesmo podendo determinar sua complexidade exata, o c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co Para entradas grandes, as constantes multiplicativas e termos de menor ordem s˜ao dominados pelos efeitos do tamanho da entrada Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
  • 32. Comportamento Assint´otico E para que isso serve? A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao simples da eficiˆencia do algoritmo Mesmo podendo determinar sua complexidade exata, o c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co Para entradas grandes, as constantes multiplicativas e termos de menor ordem s˜ao dominados pelos efeitos do tamanho da entrada Nos permite tamb´em comparar o desempenho relativo de algoritmos alternativos Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
  • 33. Comportamento Assint´otico E para que isso serve? A defini¸c˜ao de um limite nos d´a uma caracteriza¸c˜ao simples da eficiˆencia do algoritmo Mesmo podendo determinar sua complexidade exata, o c´alculo dessa precis˜ao extra pode n˜ao valer o esfor¸co Para entradas grandes, as constantes multiplicativas e termos de menor ordem s˜ao dominados pelos efeitos do tamanho da entrada Nos permite tamb´em comparar o desempenho relativo de algoritmos alternativos Nos diz qual ser´a melhor quando a entrada cresce Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 8 / 28
  • 34. Relacionamento Assint´otico Defini¸c˜ao: Uma fun¸c˜ao f (n) domina assintoticamente outra fun¸c˜ao g(n) se existirem duas constantes positivas c e m tais que, para n ≥ m, tem-se |g(n)| ≤ c × |f (n)|. Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 9 / 28
  • 35. Relacionamento Assint´otico Defini¸c˜ao: Uma fun¸c˜ao f (n) domina assintoticamente outra fun¸c˜ao g(n) se existirem duas constantes positivas c e m tais que, para n ≥ m, tem-se |g(n)| ≤ c × |f (n)|. Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 9 / 28
  • 36. Relacionamento Assint´otico Quem domina quem? g(n) = n e f (n) = n2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
  • 37. Relacionamento Assint´otico Quem domina quem? g(n) = n e f (n) = n2 |n| ≤ |n2 | para todo n ∈ N Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
  • 38. Relacionamento Assint´otico Quem domina quem? g(n) = n e f (n) = n2 |n| ≤ |n2 | para todo n ∈ N Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto, f (n) domina assintoticamente g(n). Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
  • 39. Relacionamento Assint´otico Quem domina quem? g(n) = n e f (n) = n2 |n| ≤ |n2 | para todo n ∈ N Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto, f (n) domina assintoticamente g(n). g(n) = n e f (n) = −n2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
  • 40. Relacionamento Assint´otico Quem domina quem? g(n) = n e f (n) = n2 |n| ≤ |n2 | para todo n ∈ N Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto, f (n) domina assintoticamente g(n). g(n) = n e f (n) = −n2 |n| ≤ |−n2 | para todo n ∈ N (por ser m´odulo, o sinal n˜ao importa) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
  • 41. Relacionamento Assint´otico Quem domina quem? g(n) = n e f (n) = n2 |n| ≤ |n2 | para todo n ∈ N Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto, f (n) domina assintoticamente g(n). g(n) = n e f (n) = −n2 |n| ≤ |−n2 | para todo n ∈ N (por ser m´odulo, o sinal n˜ao importa) Para c = 1 e m = 0, temos que |g(n)| ≤ |f (n)|. Portanto, f (n) domina assintoticamente g(n). Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 10 / 28
  • 42. Relacionamento Assint´otico Quem domina quem? g(n) = (n + 1)2 e f (n) = n2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
  • 43. Relacionamento Assint´otico Quem domina quem? g(n) = (n + 1)2 e f (n) = n2 Melhor por em um gr´afico Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
  • 44. Relacionamento Assint´otico Quem domina quem? g(n) = (n + 1)2 e f (n) = n2 Melhor por em um gr´afico |n2 | ≤ |(n + 1)2 | para n ≥ 0 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
  • 45. Relacionamento Assint´otico Quem domina quem? g(n) = (n + 1)2 e f (n) = n2 Melhor por em um gr´afico |n2 | ≤ |(n + 1)2 | para n ≥ 0 g(n) domina f (n) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
  • 46. Relacionamento Assint´otico Quem domina quem? g(n) = (n + 1)2 e f (n) = n2 Melhor por em um gr´afico |n2 | ≤ |(n + 1)2 | para n ≥ 0 g(n) domina f (n) Ser´a somente isso? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
  • 47. Relacionamento Assint´otico Quem domina quem? g(n) = (n + 1)2 e f (n) = n2 Melhor por em um gr´afico |n2 | ≤ |(n + 1)2 | para n ≥ 0 g(n) domina f (n) Ser´a somente isso? N˜ao h´a como f (n) dominar g(n)? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 11 / 28
  • 48. Relacionamento Assint´otico Quem domina quem? Lembre que a defini¸c˜ao envolve tamb´em uma constante Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
  • 49. Relacionamento Assint´otico Quem domina quem? Lembre que a defini¸c˜ao envolve tamb´em uma constante Suponha que queremos g(n) ≤ cf (n) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
  • 50. Relacionamento Assint´otico Quem domina quem? Lembre que a defini¸c˜ao envolve tamb´em uma constante Suponha que queremos g(n) ≤ cf (n) Ent˜ao |(n + 1)2 | ≤ |cn2 | Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
  • 51. Relacionamento Assint´otico Quem domina quem? Lembre que a defini¸c˜ao envolve tamb´em uma constante Suponha que queremos g(n) ≤ cf (n) Ent˜ao |(n + 1)2 | ≤ |cn2 | Mas, para isso, basta que |(n + 1)2 | ≤ |( √ cn)2 | ou |n + 1| ≤ | √ cn| Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
  • 52. Relacionamento Assint´otico Quem domina quem? Lembre que a defini¸c˜ao envolve tamb´em uma constante Suponha que queremos g(n) ≤ cf (n) Ent˜ao |(n + 1)2 | ≤ |cn2 | Mas, para isso, basta que |(n + 1)2 | ≤ |( √ cn)2 | ou |n + 1| ≤ | √ cn| Se √ c = 2, ou seja, c = 4, isso ´e verdade, para n ≥ 1 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 12 / 28
  • 53. Relacionamento Assint´otico Quem domina quem? Ent˜ao temos que g(n) domina f (n), pois |n2 | ≤ |(n + 1)2 |, n ≥ 0 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 13 / 28
  • 54. Relacionamento Assint´otico Quem domina quem? Ent˜ao temos que g(n) domina f (n), pois |n2 | ≤ |(n + 1)2 |, n ≥ 0 e f (n) domina g(n), pois |(n + 1)2 | ≤ |4n2 |, n ≥ 1 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 13 / 28
  • 55. Relacionamento Assint´otico Quem domina quem? Ent˜ao temos que g(n) domina f (n), pois |n2 | ≤ |(n + 1)2 |, n ≥ 0 e f (n) domina g(n), pois |(n + 1)2 | ≤ |4n2 |, n ≥ 1 Nesse caso, dizemos que f (n) e g(n) dominam assintoticamente uma a outra Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 13 / 28
  • 56. Nota¸c˜ao O Knuth (1968) criou a nota¸c˜ao O (O grande) para expressar que f (n) domina assintoticamente g(n) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
  • 57. Nota¸c˜ao O Knuth (1968) criou a nota¸c˜ao O (O grande) para expressar que f (n) domina assintoticamente g(n) Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no m´aximo f (n)” Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
  • 58. Nota¸c˜ao O Knuth (1968) criou a nota¸c˜ao O (O grande) para expressar que f (n) domina assintoticamente g(n) Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no m´aximo f (n)” E para que serve isso? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
  • 59. Nota¸c˜ao O Knuth (1968) criou a nota¸c˜ao O (O grande) para expressar que f (n) domina assintoticamente g(n) Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no m´aximo f (n)” E para que serve isso? Muitas vezes calcular a fun¸c˜ao de complexidade g(n) de um algoritmo ´e complicado Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
  • 60. Nota¸c˜ao O Knuth (1968) criou a nota¸c˜ao O (O grande) para expressar que f (n) domina assintoticamente g(n) Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no m´aximo f (n)” E para que serve isso? Muitas vezes calcular a fun¸c˜ao de complexidade g(n) de um algoritmo ´e complicado ´E mais f´acil determinar que g(n) ´e O(f (n)), isto ´e, que assintoticamente g(n) cresce no m´aximo como f (n) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
  • 61. Nota¸c˜ao O Knuth (1968) criou a nota¸c˜ao O (O grande) para expressar que f (n) domina assintoticamente g(n) Escreve-se g(n) = O(f (n)) e lˆe-se: “g(n) ´e da ordem no m´aximo f (n)” E para que serve isso? Muitas vezes calcular a fun¸c˜ao de complexidade g(n) de um algoritmo ´e complicado ´E mais f´acil determinar que g(n) ´e O(f (n)), isto ´e, que assintoticamente g(n) cresce no m´aximo como f (n) Ex: Se dizemos que T(n) = O(n2 ), significa que existem constantes c e m tais que, para n ≥ m, T(n) ≤ cn2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 14 / 28
  • 62. Nota¸c˜ao O Defini¸c˜ao Uma fun¸c˜ao g(n) ´e O(f (n)) se existirem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 15 / 28
  • 63. Nota¸c˜ao O Defini¸c˜ao Uma fun¸c˜ao g(n) ´e O(f (n)) se existirem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m Informalmente, dizemos que, se g(n) ∈ O(f (n)), ent˜ao g(n) cresce no m´aximo t˜ao rapidamente quanto f (n) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 15 / 28
  • 64. Nota¸c˜ao O Defini¸c˜ao Uma fun¸c˜ao g(n) ´e O(f (n)) se existirem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m Informalmente, dizemos que, se g(n) ∈ O(f (n)), ent˜ao g(n) cresce no m´aximo t˜ao rapidamente quanto f (n) Trata-se ent˜ao de um limite assint´otico superior para g(n) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 15 / 28
  • 65. Nota¸c˜ao O Exemplo 3 2 n2 − 2n ∈ O(n2 )? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
  • 66. Nota¸c˜ao O Exemplo 3 2 n2 − 2n ∈ O(n2 )? Fazendo c = 3 2 temos 3 2 n2 − 2n ≤ 3 2 n2 , para m ≥ 2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
  • 67. Nota¸c˜ao O Exemplo 3 2 n2 − 2n ∈ O(n2 )? Fazendo c = 3 2 temos 3 2 n2 − 2n ≤ 3 2 n2 , para m ≥ 2 Outras constantes podem existir, mas o que importa ´e que exista alguma escolha para as constantes Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
  • 68. Nota¸c˜ao O Exemplo 3 2 n2 − 2n ∈ O(n2 )? Fazendo c = 3 2 temos 3 2 n2 − 2n ≤ 3 2 n2 , para m ≥ 2 Outras constantes podem existir, mas o que importa ´e que exista alguma escolha para as constantes (n + 1)2 ∈ O(n2 )? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
  • 69. Nota¸c˜ao O Exemplo 3 2 n2 − 2n ∈ O(n2 )? Fazendo c = 3 2 temos 3 2 n2 − 2n ≤ 3 2 n2 , para m ≥ 2 Outras constantes podem existir, mas o que importa ´e que exista alguma escolha para as constantes (n + 1)2 ∈ O(n2 )? Fazendo c = 4, m = 1, temos (n + 1)2 ≤ 4n2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
  • 70. Nota¸c˜ao O Exemplo 3 2 n2 − 2n ∈ O(n2 )? Fazendo c = 3 2 temos 3 2 n2 − 2n ≤ 3 2 n2 , para m ≥ 2 Outras constantes podem existir, mas o que importa ´e que exista alguma escolha para as constantes (n + 1)2 ∈ O(n2 )? Fazendo c = 4, m = 1, temos (n + 1)2 ≤ 4n2 (n + 1)2 ∈ O(n2 ) para n ≥ 1 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 16 / 28
  • 71. Nota¸c˜ao O Exemplo 3n3 + 2n2 + n ∈ O(n3 )? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
  • 72. Nota¸c˜ao O Exemplo 3n3 + 2n2 + n ∈ O(n3 )? Basta mostrar que 3n3 + 2n2 + n ≤ 6n3 , para n ≥ 0 (ou seja, c = 6 e m = 0) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
  • 73. Nota¸c˜ao O Exemplo 3n3 + 2n2 + n ∈ O(n3 )? Basta mostrar que 3n3 + 2n2 + n ≤ 6n3 , para n ≥ 0 (ou seja, c = 6 e m = 0) 3n3 + 2n2 + n ∈ O(n4 )? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
  • 74. Nota¸c˜ao O Exemplo 3n3 + 2n2 + n ∈ O(n3 )? Basta mostrar que 3n3 + 2n2 + n ≤ 6n3 , para n ≥ 0 (ou seja, c = 6 e m = 0) 3n3 + 2n2 + n ∈ O(n4 )? Sim, mas essa afirma¸c˜ao ´e mais fraca que dizer que 3n3 + 2n2 + n ´e O(n3 ) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
  • 75. Nota¸c˜ao O Exemplo 3n3 + 2n2 + n ∈ O(n3 )? Basta mostrar que 3n3 + 2n2 + n ≤ 6n3 , para n ≥ 0 (ou seja, c = 6 e m = 0) 3n3 + 2n2 + n ∈ O(n4 )? Sim, mas essa afirma¸c˜ao ´e mais fraca que dizer que 3n3 + 2n2 + n ´e O(n3 ) Escolhemos ent˜ao o limite “mais baixo”, pois nos interessa o assintoticamente mais pr´oximo de 3n3 + 2n2 + n Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
  • 76. Nota¸c˜ao O Exemplo 3n3 + 2n2 + n ∈ O(n3 )? Basta mostrar que 3n3 + 2n2 + n ≤ 6n3 , para n ≥ 0 (ou seja, c = 6 e m = 0) 3n3 + 2n2 + n ∈ O(n4 )? Sim, mas essa afirma¸c˜ao ´e mais fraca que dizer que 3n3 + 2n2 + n ´e O(n3 ) Escolhemos ent˜ao o limite “mais baixo”, pois nos interessa o assintoticamente mais pr´oximo de 3n3 + 2n2 + n Isso, contudo, n˜ao implica estar errado que ´e O(n4 ) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 17 / 28
  • 77. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 78. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 79. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) c × O(f (n)) = O(f (n)) (c: constante) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 80. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) c × O(f (n)) = O(f (n)) (c: constante) O(f (n)) + O(f (n)) = O(f (n)) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 81. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) c × O(f (n)) = O(f (n)) (c: constante) O(f (n)) + O(f (n)) = O(f (n)) O(O(f (n))) = O(f (n)) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 82. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) c × O(f (n)) = O(f (n)) (c: constante) O(f (n)) + O(f (n)) = O(f (n)) O(O(f (n))) = O(f (n)) O(f (n) + g(n)) = O(f (n)) + O(g(n)) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 83. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) c × O(f (n)) = O(f (n)) (c: constante) O(f (n)) + O(f (n)) = O(f (n)) O(O(f (n))) = O(f (n)) O(f (n) + g(n)) = O(f (n)) + O(g(n)) O(f (n)) + O(g(n)) = O(max(f (n), g(n))) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 84. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) c × O(f (n)) = O(f (n)) (c: constante) O(f (n)) + O(f (n)) = O(f (n)) O(O(f (n))) = O(f (n)) O(f (n) + g(n)) = O(f (n)) + O(g(n)) O(f (n)) + O(g(n)) = O(max(f (n), g(n))) O(f (n))O(g(n)) = O(f (n)g(n)) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 85. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O f (n) = O(f (n)) c × O(f (n)) = O(f (n)) (c: constante) O(f (n)) + O(f (n)) = O(f (n)) O(O(f (n))) = O(f (n)) O(f (n) + g(n)) = O(f (n)) + O(g(n)) O(f (n)) + O(g(n)) = O(max(f (n), g(n))) O(f (n))O(g(n)) = O(f (n)g(n)) f (n)O(g(n)) = O(f (n)g(n)) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 18 / 28
  • 86. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n))) pode ser usada para calcular o tempo de execu¸c˜ao de uma sequˆencia de trechos de um programa Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
  • 87. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n))) pode ser usada para calcular o tempo de execu¸c˜ao de uma sequˆencia de trechos de um programa Ex: Suponha 3 trechos: O(n), O(n2 ) e O(nlog(n)). Qual o tempo de execu¸c˜ao do algoritmo como um todo? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
  • 88. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n))) pode ser usada para calcular o tempo de execu¸c˜ao de uma sequˆencia de trechos de um programa Ex: Suponha 3 trechos: O(n), O(n2 ) e O(nlog(n)). Qual o tempo de execu¸c˜ao do algoritmo como um todo? Lembre-se que o tempo de execu¸c˜ao ´e a soma dos tempos de cada trecho Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
  • 89. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O A regra O(f (n)) + O(g(n)) = O(max(f (n), g(n))) pode ser usada para calcular o tempo de execu¸c˜ao de uma sequˆencia de trechos de um programa Ex: Suponha 3 trechos: O(n), O(n2 ) e O(nlog(n)). Qual o tempo de execu¸c˜ao do algoritmo como um todo? Lembre-se que o tempo de execu¸c˜ao ´e a soma dos tempos de cada trecho O(n)+O(n2 )+O(nlog(n)) = max(O(n), O(n2 ), O(nlog(n))) = O(n2 ) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 19 / 28
  • 90. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Isso facilita muito o c´alculo do limite superior para a complexidade de um algoritmo Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
  • 91. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Isso facilita muito o c´alculo do limite superior para a complexidade de um algoritmo Ex: 3n3 + 2n2 + n ∈ O(n3 )? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
  • 92. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Isso facilita muito o c´alculo do limite superior para a complexidade de um algoritmo Ex: 3n3 + 2n2 + n ∈ O(n3 )? Sim, porque o termo de maior ordem (3n3 ) ´e claramente O(n3 ) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
  • 93. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Isso facilita muito o c´alculo do limite superior para a complexidade de um algoritmo Ex: 3n3 + 2n2 + n ∈ O(n3 )? Sim, porque o termo de maior ordem (3n3 ) ´e claramente O(n3 ) Ent˜ao, pela regra, este ser´a o limite da express˜ao como um todo Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
  • 94. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Isso facilita muito o c´alculo do limite superior para a complexidade de um algoritmo Ex: 3n3 + 2n2 + n ∈ O(n3 )? Sim, porque o termo de maior ordem (3n3 ) ´e claramente O(n3 ) Ent˜ao, pela regra, este ser´a o limite da express˜ao como um todo N˜ao h´a necessidade de provar usando os termos de menor ordem Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 20 / 28
  • 95. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Por vezes basta observar a estrutura do algoritmo para saber sua complexidade Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
  • 96. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Por vezes basta observar a estrutura do algoritmo para saber sua complexidade Como quando h´a um la¸co encadeado em outro, ambos proporcionais `a entrada Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
  • 97. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Por vezes basta observar a estrutura do algoritmo para saber sua complexidade Como quando h´a um la¸co encadeado em outro, ambos proporcionais `a entrada Nesse caso, essa parte ´e O(n2 ) e, se nenhuma outra for mais alta, ent˜ao esse ´e o limite do algoritmo Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
  • 98. Nota¸c˜ao O Opera¸c˜oes com a nota¸c˜ao O Por vezes basta observar a estrutura do algoritmo para saber sua complexidade Como quando h´a um la¸co encadeado em outro, ambos proporcionais `a entrada Nesse caso, essa parte ´e O(n2 ) e, se nenhuma outra for mais alta, ent˜ao esse ´e o limite do algoritmo Mais do que isso, sendo O um limite superior, se o calcularmos no pior caso teremos um limite superior para toda e qualquer entrada Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 21 / 28
  • 99. Nota¸c˜ao O Problemas Como comparar algoritmos cujas complexidades s˜ao equivalentes? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
  • 100. Nota¸c˜ao O Problemas Como comparar algoritmos cujas complexidades s˜ao equivalentes? Ou seja, quando f (n) e g(n) dominam assintoticamente uma `a outra Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
  • 101. Nota¸c˜ao O Problemas Como comparar algoritmos cujas complexidades s˜ao equivalentes? Ou seja, quando f (n) e g(n) dominam assintoticamente uma `a outra Nesses casos, o comportamento assint´otico n˜ao serve para a compara¸c˜ao Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
  • 102. Nota¸c˜ao O Problemas Como comparar algoritmos cujas complexidades s˜ao equivalentes? Ou seja, quando f (n) e g(n) dominam assintoticamente uma `a outra Nesses casos, o comportamento assint´otico n˜ao serve para a compara¸c˜ao Teremos que ver sua complexidade com mais detalhes, observando as constantes Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 22 / 28
  • 103. Nota¸c˜ao O Problemas Como comparar algoritmos quando n˜ao teremos entradas grandes? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
  • 104. Nota¸c˜ao O Problemas Como comparar algoritmos quando n˜ao teremos entradas grandes? Nesse caso, pode ocorrer que um algoritmo assintoticamente mais lento seja mais r´apido para entradas pequenas Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
  • 105. Nota¸c˜ao O Problemas Como comparar algoritmos quando n˜ao teremos entradas grandes? Nesse caso, pode ocorrer que um algoritmo assintoticamente mais lento seja mais r´apido para entradas pequenas Ex: um programa tem f (n) = 100n, e outro g(n) = 2n2 . Qual dos dois ´e melhor? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
  • 106. Nota¸c˜ao O Problemas Como comparar algoritmos quando n˜ao teremos entradas grandes? Nesse caso, pode ocorrer que um algoritmo assintoticamente mais lento seja mais r´apido para entradas pequenas Ex: um programa tem f (n) = 100n, e outro g(n) = 2n2 . Qual dos dois ´e melhor? Depende do tamanho do problema Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
  • 107. Nota¸c˜ao O Problemas Como comparar algoritmos quando n˜ao teremos entradas grandes? Nesse caso, pode ocorrer que um algoritmo assintoticamente mais lento seja mais r´apido para entradas pequenas Ex: um programa tem f (n) = 100n, e outro g(n) = 2n2 . Qual dos dois ´e melhor? Depende do tamanho do problema Para n < 50, o programa com tempo 2n2 ´e melhor do que o de 100n Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
  • 108. Nota¸c˜ao O Problemas Como comparar algoritmos quando n˜ao teremos entradas grandes? Nesse caso, pode ocorrer que um algoritmo assintoticamente mais lento seja mais r´apido para entradas pequenas Ex: um programa tem f (n) = 100n, e outro g(n) = 2n2 . Qual dos dois ´e melhor? Depende do tamanho do problema Para n < 50, o programa com tempo 2n2 ´e melhor do que o de 100n Ent˜ao, se nunca teremos n ≥ 50, o programa com 2n2 ´e melhor Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 23 / 28
  • 109. Nota¸c˜ao o Defini¸c˜ao Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante c > 0, existe uma constante m > 0 tal que 0 ≤ g(n) < cf (n), para todo n ≥ m Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
  • 110. Nota¸c˜ao o Defini¸c˜ao Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante c > 0, existe uma constante m > 0 tal que 0 ≤ g(n) < cf (n), para todo n ≥ m Informalmente, dizemos que, se g(n) ∈ o(f (n)), ent˜ao g(n) cresce mais lentamente que f (n) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
  • 111. Nota¸c˜ao o Defini¸c˜ao Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante c > 0, existe uma constante m > 0 tal que 0 ≤ g(n) < cf (n), para todo n ≥ m Informalmente, dizemos que, se g(n) ∈ o(f (n)), ent˜ao g(n) cresce mais lentamente que f (n) Intuitivamente, na nota¸c˜ao o a fun¸c˜ao g(n) tem crescimento muito menor que f (n) quando n tende para o infinito Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
  • 112. Nota¸c˜ao o Defini¸c˜ao Uma fun¸c˜ao g(n) ´e o(f (n)) se, para toda constante c > 0, existe uma constante m > 0 tal que 0 ≤ g(n) < cf (n), para todo n ≥ m Informalmente, dizemos que, se g(n) ∈ o(f (n)), ent˜ao g(n) cresce mais lentamente que f (n) Intuitivamente, na nota¸c˜ao o a fun¸c˜ao g(n) tem crescimento muito menor que f (n) quando n tende para o infinito Ou seja, lim n→∞ g(n) f (n) = 0 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 24 / 28
  • 113. Diferen¸ca entre O e o O(f (n)) = {g(n): existem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m} Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
  • 114. Diferen¸ca entre O e o O(f (n)) = {g(n): existem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m} A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma constante c > 0 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
  • 115. Diferen¸ca entre O e o O(f (n)) = {g(n): existem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m} A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma constante c > 0 Basta acharmos um c e um m Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
  • 116. Diferen¸ca entre O e o O(f (n)) = {g(n): existem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m} A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma constante c > 0 Basta acharmos um c e um m o(f (n)) = {g(n): para toda constante positiva c, existe uma constante m > 0 tal que 0 ≤ g(n) < cf (n), para todo n ≥ m}. Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
  • 117. Diferen¸ca entre O e o O(f (n)) = {g(n): existem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m} A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma constante c > 0 Basta acharmos um c e um m o(f (n)) = {g(n): para toda constante positiva c, existe uma constante m > 0 tal que 0 ≤ g(n) < cf (n), para todo n ≥ m}. A express˜ao 0 ≤ g(n) < cf (n) ´e v´alida para toda constante c > 0 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
  • 118. Diferen¸ca entre O e o O(f (n)) = {g(n): existem constantes positivas c e m tais que 0 ≤ g(n) ≤ cf (n), para todo n ≥ m} A express˜ao 0 ≤ g(n) ≤ cf (n) ´e v´alida para alguma constante c > 0 Basta acharmos um c e um m o(f (n)) = {g(n): para toda constante positiva c, existe uma constante m > 0 tal que 0 ≤ g(n) < cf (n), para todo n ≥ m}. A express˜ao 0 ≤ g(n) < cf (n) ´e v´alida para toda constante c > 0 Para todo c temos que ter um m Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 25 / 28
  • 119. Nota¸c˜ao o Exemplo 1000n2 ∈ o(n3 )? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
  • 120. Nota¸c˜ao o Exemplo 1000n2 ∈ o(n3 )? Buscamos um m tal que, para todo c e n ≥ m, 1000n2 < cn3 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
  • 121. Nota¸c˜ao o Exemplo 1000n2 ∈ o(n3 )? Buscamos um m tal que, para todo c e n ≥ m, 1000n2 < cn3 ⇒ 1000 < cn (dividindo ambos os lados por n2 ) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
  • 122. Nota¸c˜ao o Exemplo 1000n2 ∈ o(n3 )? Buscamos um m tal que, para todo c e n ≥ m, 1000n2 < cn3 ⇒ 1000 < cn (dividindo ambos os lados por n2 ) ⇒ n > 1000 c Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
  • 123. Nota¸c˜ao o Exemplo 1000n2 ∈ o(n3 )? Buscamos um m tal que, para todo c e n ≥ m, 1000n2 < cn3 ⇒ 1000 < cn (dividindo ambos os lados por n2 ) ⇒ n > 1000 c Ou seja, para todo valor de c, um m que satisfaz a defini¸c˜ao ´e m = 1000 c + 1 (pois n ≥ m e n > 1000 c ) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 26 / 28
  • 124. Nota¸c˜ao o Exemplo 2n2 ∈ o(n2 )? Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
  • 125. Nota¸c˜ao o Exemplo 2n2 ∈ o(n2 )? Buscamos um m tal que, para todo c e n ≥ m, 2n2 < cn2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
  • 126. Nota¸c˜ao o Exemplo 2n2 ∈ o(n2 )? Buscamos um m tal que, para todo c e n ≥ m, 2n2 < cn2 Mas 2n2 < cn2 ⇒ c > 2 (caso em que vale para todo n > 0) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
  • 127. Nota¸c˜ao o Exemplo 2n2 ∈ o(n2 )? Buscamos um m tal que, para todo c e n ≥ m, 2n2 < cn2 Mas 2n2 < cn2 ⇒ c > 2 (caso em que vale para todo n > 0) Ou seja, n˜ao h´a m tal que, para todo c e n ≥ m, 2n2 < cn2 Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
  • 128. Nota¸c˜ao o Exemplo 2n2 ∈ o(n2 )? Buscamos um m tal que, para todo c e n ≥ m, 2n2 < cn2 Mas 2n2 < cn2 ⇒ c > 2 (caso em que vale para todo n > 0) Ou seja, n˜ao h´a m tal que, para todo c e n ≥ m, 2n2 < cn2 Logo, 2n2 ∈ o(n2 ) Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 27 / 28
  • 129. Referˆencias Ziviani, Nivio. Projeto de Algoritmos: com implementa¸c˜oes em Java e C++. Cengage. 2007. Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., Stein, Clifford. Introduction to Algorithms. 2a ed. MIT Press, 2001. Gersting, Judith L. Fundamentos Matem´aticos para a Ciˆencia da Computa¸c˜ao. 3a ed. LTC. 1993. https://www.chegg.com/tutors/ what-is-Asymptotic-and-Unbounded-Behavior/ https://www.mathsisfun.com/algebra/asymptote.html Norton Trevisan Romannorton@usp.br Aula 07 – An´alise Assint´otica de Algoritmos: Nota¸c˜ao O e o11 de setembro de 2018 28 / 28