SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
An´alise de Algoritmos
Análise assintótica: ordens O, Ω e Θ
– p. 1/35
Análise assintótica
Ao ver uma expressão como n + 10 ou n2
+ 1,
pensamos geralmente em valores pequenos de n,
valores próximos de zero.
A análise de algoritmos faz exatamente o contrário:
ignora os valores pequenos e concentra-se nos
valores enormes de n. Esse tipo de análise
chama-se análise “assintótica”.
– p. 2/35
Análise assintótica - exemplo
Considere o número de operações de dois
algoritmos que resolvem um mesmo problema,
como função do tamanho n da entrada.
Algoritmo 1: f1(n) = 2n2
+ 5n operações
Algoritmo 2: f2(n) = 500n + 4000 operações
Dependendo do valor de n, o Algoritmo 1 pode
requerer mais ou menos operações que o
Algoritmo 2. (Compare as duas funções para
n = 10 e n = 100.)
– p. 3/35
Análise assintótica - exemplo
Nosso interesse é estudar o comportamento
assint´otico das funções, ou seja, quando n → ∞.
Em geral, os termos inferiores e as constantes
multiplicativas contribuem pouco na comparação e
podem ser descartados.
– p. 4/35
Análise assintótica - exemplo
O importante é observar que f1(n) tem crescimento
proporcional a n2
(quadrático), ao passo que f2(n)
tem crescimento proporcional a n (linear). Um
crescimento quadrático é pior que um crescimento
linear. Assim, vamos preferir o Algoritmo 2.
– p. 5/35
Análise assintótica - outro exemplo
Para valores enormes de n, as funções
n2
,
3
2
n2
, 9999n2
,
n2
1000
, n2
+ 100n
crescem todas com a mesma velocidade e
portanto são todas “equivalentes”. Nesse estudo,
as funções são classificadas em “ordens”; todas as
funções de uma mesma ordem são equivalentes.
As cinco funções acima, por exemplo, pertencem à
mesma ordem.
– p. 6/35
Importância da análise assintótica
Na tabela abaixo, os valores representam o
tamanho da maior instância solucionável em uma
hora.
Computador Computador 100 Computador 1000
Função atual vezes mais rápido vezes mais rápido
n N 100N 1000N
n log n N1 22, 5N1 140, 2N1
n2 N2 10N2 31, 6N2
n3
N3 4, 6N3 10N3
2n N4 N4 + 6 N4 + 10
– p. 7/35
Funções assintoticamente não negativas
Restringiremos a atenção a funções
assintoticamente não negativas, ou seja, funções f
tais que f(n) ≥ 0 para todo n “suficientemente
grande”.
Mais explicitamente, f é assintoticamente não
negativa se existe n0 tal que f(n) ≥ 0 para todo n
maior que n0.
– p. 8/35
An´alise de Algoritmos
Análise assintótica: ordem O
– p. 9/35
Ordem O
Dadas funções assintoticamente não negativas f e
g, dizemos que f est´a na ordem O de g e
escrevemos f = O(g) se
f(n) ≤ c.g(n)
para algum c positivo e para todo n suficientemente
grande.
– p. 10/35
Ordem O
Em outras palavras, f = O(g) se existe um número
positivo c e um número n0 tais que
f(n) ≤ c.g(n)
para todo n maior que n0.
– p. 11/35
Ordem O - Exemplos
A notação O fornece limites superiores de funções
que, por sua vez, correspondem a tempos de
execução de algoritmos.
– p. 12/35
Ordem O - Exemplos
A notação O fornece limites superiores de funções
que, por sua vez, correspondem a tempos de
execução de algoritmos.
Exemplo 1: Se f(n) ≤ 9999g(n) para todo n ≥ 1000
– p. 12/35
Ordem O - Exemplos
A notação O fornece limites superiores de funções
que, por sua vez, correspondem a tempos de
execução de algoritmos.
Exemplo 1: Se f(n) ≤ 9999g(n) para todo n ≥ 1000
então f = O(g).
– p. 12/35
Ordem O - Exemplos
Exemplo 2: Suponha que f(n) = 2n2
+ 3n + 4.
– p. 13/35
Ordem O - Exemplos
Exemplo 2: Suponha que f(n) = 2n2
+ 3n + 4.
2n2
+ 3n + 4 ≤ 2n2
+ 3n2
+ 4n2
= 9n2
para todo n ≥ 1.
– p. 13/35
Ordem O - Exemplos
Exemplo 2: Suponha que f(n) = 2n2
+ 3n + 4.
2n2
+ 3n + 4 ≤ 2n2
+ 3n2
+ 4n2
= 9n2
para todo n ≥ 1. Portanto, f(n) = O(n2
).
– p. 13/35
Ordem O - Exemplos
Exemplo 3: Suponha que f(n) = 3 + 2
n e que
g(n) = 1.
– p. 14/35
Ordem O - Exemplos
Exemplo 3: Suponha que f(n) = 3 + 2
n e que
g(n) = 1. Então
3 +
2
n
≤ 3 + 1 = 4 = 4.g(n)
para todo n ≥ 2.
– p. 14/35
Ordem O - Exemplos
Exemplo 3: Suponha que f(n) = 3 + 2
n e que
g(n) = 1. Então
3 +
2
n
≤ 3 + 1 = 4 = 4.g(n)
para todo n ≥ 2. Portanto, f(n) = O(g(n)) = O(1).
– p. 14/35
Ordem O - Exemplos
Exemplo 4: Suponha que f(n) = n3
e que
g(n) = 200n2
. Será verdade que f(n) = O(g(n))?
– p. 15/35
Ordem O - Exemplos
Exemplo 4: Suponha que f(n) = n3
e que
g(n) = 200n2
. Será verdade que f(n) = O(g(n))?
Se existem c e n0 tais que f(n) ≤ c.g(n), teremos
n ≤ 200c
para todo n ≥ n0. Mas isso é absurdo!
– p. 15/35
Ordem O - Exemplos
Exemplo 4: Suponha que f(n) = n3
e que
g(n) = 200n2
. Será verdade que f(n) = O(g(n))?
Se existem c e n0 tais que f(n) ≤ c.g(n), teremos
n ≤ 200c
para todo n ≥ n0. Mas isso é absurdo!
Logo, f(n) = O(g(n)).
– p. 15/35
Ordem O - Exercícios
Prove os disprove as afirmações:
1. 10n = O(n)
2. 10n2 = O(n)
3. 10n55 = O(2n)
4. n2 + 200n + 300 = O(n2)
5. n2 − 200n − 300 = O(n)
6. 3
2n2 + 7
2n − 4 = O(n)
7. 3
2n2 + 7
2n − 4 = O(n2)
8. n3 − 999999n2 − 1000000 = O(n2)
– p. 16/35
Ordem O - Exercícios
9. Seja n
k o número de combinações de n objetos
tomados k a k. Mostre n
2 = O(n2).
Prove os disprove as afirmações:
10. 2n+1 = O(2n)
11. 3n = O(2n)
12. log2 n = O(log3 n)
13. log3 n = O(log2 n)
14. log2 n = O(n)
15. 100 log n − 10n + 2n log n = O(n log n)
– p. 17/35
Limite superior (upper bound)
A notação O também é utilizada para indicar
limites superiores para problemas.
– p. 18/35
Limite superior (upper bound)
A notação O também é utilizada para indicar
limites superiores para problemas.
Dado um problema, por exemplo, o de
multiplicação de duas matrizes quadradas n × n.
– p. 18/35
Limite superior (upper bound)
A notação O também é utilizada para indicar
limites superiores para problemas.
Dado um problema, por exemplo, o de
multiplicação de duas matrizes quadradas n × n.
Conhecemos um algoritmo para resolver este
problema (pelo método trivial) de complexidade
O(n3
).
– p. 18/35
Limite superior
Sabemos assim que a complexidade deste
problema não deve superar O(n3
), uma vez que
existe um algoritmo que o resolve com esta
complexidade, e dizemos que uma cota superior ou
limite superior para este problema é O(n3
).
– p. 19/35
Limite superior
Sabemos assim que a complexidade deste
problema não deve superar O(n3
), uma vez que
existe um algoritmo que o resolve com esta
complexidade, e dizemos que uma cota superior ou
limite superior para este problema é O(n3
).
A cota superior de um problema pode mudar se
alguém descobrir um outro algoritmo melhor.
– p. 19/35
Limite superior
V. Strassen apresentou em 1969 um algoritmo
para multiplicação de matrizes de complexidade
O(nlog 7
) = O(n2.807
).
– p. 20/35
Limite superior
V. Strassen apresentou em 1969 um algoritmo
para multiplicação de matrizes de complexidade
O(nlog 7
) = O(n2.807
).
Assim a cota superior para o problema de
multiplicação de matrizes passou a ser O(nlog 7
).
– p. 20/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram
esta marca para O(n2.376
);
– p. 21/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram
esta marca para O(n2.376
);
Em 2010, A. Stothers apresentou um algoritmo
de complexidade O(n2.373
);
– p. 21/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram
esta marca para O(n2.376
);
Em 2010, A. Stothers apresentou um algoritmo
de complexidade O(n2.373
);
Em 2011, V. Willians melhorou ainda mais esta
marca para O(n2.372
).
– p. 21/35
Limite superior
Em 1990, Coppersmith e Winograd melhoraram
esta marca para O(n2.376
);
Em 2010, A. Stothers apresentou um algoritmo
de complexidade O(n2.373
);
Em 2011, V. Willians melhorou ainda mais esta
marca para O(n2.372
).
Portanto, a cota superior atual para o problema da
multiplicação de matrizes é O(n2.372
).
– p. 21/35
Analogia com record mundial
A cota superior para um problema é análoga ao
record mundial de uma modalidade de atletismo.
Ele é estabelecido pelo melhor atleta (algoritmo)
do momento. Assim como o record mundial, a cota
superior pode ser melhorada por um algoritmo
(atleta) mais veloz.
– p. 22/35
Analogia com record mundial
“Cota superior” - 100m. rasos
1988 Carl Lewis 9s 92
1993 Linford Christie 9s 87
1999 Maurice Greene 9s 79
2007 Asafa Powell 9s 74
2008 Usain Bolt 9s 72
2009 Usain Bolt 9s 58
– p. 23/35
Limite inferior (lower bound)
As vezes é possível demonstrar que, para um dado
problema, qualquer que seja o algoritmo a ser
usado, o problema requer pelo menos um certo
número de operações.
– p. 24/35
Limite inferior (lower bound)
As vezes é possível demonstrar que, para um dado
problema, qualquer que seja o algoritmo a ser
usado, o problema requer pelo menos um certo
número de operações.
Essa complexidade é chamada cota inferior (lower
bound) do problema.
– p. 24/35
Limite inferior
Para o problema da multiplicação de matrizes
quadradas n × n, apenas para ler os elementos
das duas matrizes de entrada ou para produzir os
elementos da matriz produto leva tempo O(n2
).
Assim uma cota inferior trivial é Ω(n2
).
– p. 25/35
Algoritmo ótimo
Se um algoritmo tem uma complexidade igual á
cota inferior do problema, ele é assintoticamente
´otimo ou simplesmente ´otimo.
– p. 26/35
An´alise de Algoritmos
Análise assintótica: ordem Ω
– p. 27/35
Ordem Ω
A expressão “f = O(g)” tem o mesmo sabor que
“f ≤ g”. Agora precisamos de um conceito que
tenha o sabor de “f ≥ g”.
– p. 28/35
Ordem Ω
Dadas funções assintoticamente não negativas f e
g, dizemos que f est´a na ordem Ω de g e
escrevemos f = Ω(g) se
f(n) ≥ c.g(n)
para algum c positivo e para todo n suficientemente
grande.
– p. 29/35
Ordem Ω
Em outras palavras, f = Ω(g) se existe um número
positivo c e um número n0 tais que
f(n) ≥ c.g(n)
para todo n maior que n0.
– p. 30/35
Ordem Ω
Em outras palavras, f = Ω(g) se existe um número
positivo c e um número n0 tais que
f(n) ≥ c.g(n)
para todo n maior que n0.
Qual a relação entre O e Ω?
– p. 30/35
Ordem Ω
Em outras palavras, f = Ω(g) se existe um número
positivo c e um número n0 tais que
f(n) ≥ c.g(n)
para todo n maior que n0.
Qual a relação entre O e Ω?
f = O(g) ⇔ g = Ω(f)
– p. 30/35
Ordem Ω - Exercícios
1. Seja n
k o número de combinações de n objetos
tomados k a k. Mostre n
2 = Ω(n2).
2. Prove que 100 log n − 10n + 2n log n está em Ω(n log n).
3. É verdade que 2n + 1 está em Ω(n)?
– p. 31/35
An´alise de Algoritmos
Análise assintótica: ordem Θ
– p. 32/35
Ordem Θ
Além dos conceitos que têm o sabor de “f ≤ g” e
de “f ≥ g”, precisamos de um que tenha o sabor
de “f = g.
– p. 33/35
Ordem Θ
Dizemos que as funções f e g estão na mesma
ordem e escrevemos f = Θ(g) se f = O(g) e
f = Ω(g).
Em outras palavras, f = Θ(g) significa que existe
números positivos c e d tais que
c.g(n) ≤ f(n) ≤ d.g(n)
para todo n suficientemente grande.
– p. 34/35
Ordem Θ - Exercícios
Prove ou disprove:
1. 9999n2 = Θ(n2)
2. (3/2)n2 + (7/2)n − 4 = Θ(n2)
3. n2/1000 − 999n = Θ(n2)
4. log2 n + 1 = Θ(log10 n)
– p. 35/35

Weitere ähnliche Inhalte

Was ist angesagt?

Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)Leinylson Fontinele
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade RelacionamentoCris Fidelix
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoDelacyr Ferreira
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintóticaPablo Silva
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)Janynne Gomes
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosMario Jorge Pereira
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesaPacc UAB
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeDelacyr Ferreira
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPDelacyr Ferreira
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 
Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoGabriel Albuquerque
 

Was ist angesagt? (20)

Manual de portugol
Manual de portugolManual de portugol
Manual de portugol
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Aula 6 banco de dados
Aula 6   banco de dadosAula 6   banco de dados
Aula 6 banco de dados
 
3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento3 - Modelo Entidade Relacionamento
3 - Modelo Entidade Relacionamento
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 
Aula 9 - Estruturas Condicionais
Aula 9 - Estruturas CondicionaisAula 9 - Estruturas Condicionais
Aula 9 - Estruturas Condicionais
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)Aula 4  - Diagrama Entidade Relacionamento (com exercício no final)
Aula 4 - Diagrama Entidade Relacionamento (com exercício no final)
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Aula 4 - Teste de mesa
Aula 4 - Teste de mesaAula 4 - Teste de mesa
Aula 4 - Teste de mesa
 
Análise de Algoritmos - Recursividade
Análise de Algoritmos - RecursividadeAnálise de Algoritmos - Recursividade
Análise de Algoritmos - Recursividade
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 
Algoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco MínimoAlgoritmos Gulosos - Troco Mínimo
Algoritmos Gulosos - Troco Mínimo
 

Andere mochten auch

Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
 
01 algorimos e complexidade introduç o
01   algorimos e complexidade introduç o01   algorimos e complexidade introduç o
01 algorimos e complexidade introduç oCravid Ekuikui
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoGustavo Carvalho
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Júlio Rocha
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesMauricio Volkweis Astiazara
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmosRicardo Bolanho
 
Tutorial aed iii 001 - algoritmo de ordenação shellsort
Tutorial aed iii   001 - algoritmo de ordenação shellsortTutorial aed iii   001 - algoritmo de ordenação shellsort
Tutorial aed iii 001 - algoritmo de ordenação shellsortFlávio Freitas
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresPedro Valente
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoOrlando Junior
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sortLeno Oliveira
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 
Análise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-CompletosAnálise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-CompletosDelacyr Ferreira
 
Maquinas simples-cris
Maquinas simples-crisMaquinas simples-cris
Maquinas simples-criscristbarb
 

Andere mochten auch (20)

Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
01 algorimos e complexidade introduç o
01   algorimos e complexidade introduç o01   algorimos e complexidade introduç o
01 algorimos e complexidade introduç o
 
Aula analise algoritmos
Aula analise algoritmosAula analise algoritmos
Aula analise algoritmos
 
Análise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenaçãoAnálise de desempenho de algoritmos de ordenação
Análise de desempenho de algoritmos de ordenação
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Ordenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de ChavesOrdenação de Dados por Distribuição de Chaves
Ordenação de Dados por Distribuição de Chaves
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Tutorial aed iii 001 - algoritmo de ordenação shellsort
Tutorial aed iii   001 - algoritmo de ordenação shellsortTutorial aed iii   001 - algoritmo de ordenação shellsort
Tutorial aed iii 001 - algoritmo de ordenação shellsort
 
7 slides
7 slides7 slides
7 slides
 
Semana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetoresSemana10-ordenacao-pesquisa-vetores
Semana10-ordenacao-pesquisa-vetores
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sort
 
Ordenação por inserção
Ordenação por inserçãoOrdenação por inserção
Ordenação por inserção
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Análise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-CompletosAnálise de Algoritmos - Mais problemas NP-Completos
Análise de Algoritmos - Mais problemas NP-Completos
 
Algoritmos de busca
Algoritmos de buscaAlgoritmos de busca
Algoritmos de busca
 
Maquinas simples
Maquinas simplesMaquinas simples
Maquinas simples
 
Maquinas simples-cris
Maquinas simples-crisMaquinas simples-cris
Maquinas simples-cris
 

Ähnlich wie Análise Algoritmos OΩθ

Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfCaiqueMiranda7
 
Teoria do números - Classificações especiais
Teoria do números - Classificações especiaisTeoria do números - Classificações especiais
Teoria do números - Classificações especiaisRomulo Garcia
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfItaloRainier1
 
03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdf03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdfYuri Passos
 
Conjuntos numéricos versão mini
Conjuntos numéricos   versão miniConjuntos numéricos   versão mini
Conjuntos numéricos versão miniLuciano Pessanha
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfSimoneSantos16595
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1Carlos Campani
 
Modelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaModelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaVinicius Chacon
 
Técnicas de integração
Técnicas de integraçãoTécnicas de integração
Técnicas de integraçãoCarlos Campani
 
Coment obf nivel3_3fase
Coment obf nivel3_3faseComent obf nivel3_3fase
Coment obf nivel3_3faseThommas Kevin
 
(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
 
Exercícios resolvidos de máximo e mínimo de função
Exercícios resolvidos de máximo e mínimo de funçãoExercícios resolvidos de máximo e mínimo de função
Exercícios resolvidos de máximo e mínimo de funçãoDiego Oliveira
 
Derivação com logaritmo
Derivação com logaritmoDerivação com logaritmo
Derivação com logaritmoDiego Oliveira
 
Sequencias e mf 2016
Sequencias e mf 2016Sequencias e mf 2016
Sequencias e mf 2016ProfessoraIve
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaDelacyr Ferreira
 

Ähnlich wie Análise Algoritmos OΩθ (20)

Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdf
 
Teoria do números - Classificações especiais
Teoria do números - Classificações especiaisTeoria do números - Classificações especiais
Teoria do números - Classificações especiais
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdf03-Notacoes O omega teta Complexidade e Corretude.pdf
03-Notacoes O omega teta Complexidade e Corretude.pdf
 
Conjuntos numéricos versão mini
Conjuntos numéricos   versão miniConjuntos numéricos   versão mini
Conjuntos numéricos versão mini
 
EDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdfEDA_Aula_09_Complexidade_2021.1.pdf
EDA_Aula_09_Complexidade_2021.1.pdf
 
22032014
2203201422032014
22032014
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1
 
06 complexidade de problemas
06   complexidade de problemas06   complexidade de problemas
06 complexidade de problemas
 
Modelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaModelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimica
 
Técnicas de integração
Técnicas de integraçãoTécnicas de integração
Técnicas de integração
 
Coment obf nivel3_3fase
Coment obf nivel3_3faseComent obf nivel3_3fase
Coment obf nivel3_3fase
 
(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
 
Exercícios resolvidos de máximo e mínimo de função
Exercícios resolvidos de máximo e mínimo de funçãoExercícios resolvidos de máximo e mínimo de função
Exercícios resolvidos de máximo e mínimo de função
 
Progressões
ProgressõesProgressões
Progressões
 
Derivação com logaritmo
Derivação com logaritmoDerivação com logaritmo
Derivação com logaritmo
 
Sequencias e mf 2016
Sequencias e mf 2016Sequencias e mf 2016
Sequencias e mf 2016
 
15022014
1502201415022014
15022014
 
Análise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução FinitaAnálise de Algoritmos - Indução Finita
Análise de Algoritmos - Indução Finita
 
Apostila de matematica para concursos
Apostila de matematica para concursosApostila de matematica para concursos
Apostila de matematica para concursos
 

Kürzlich hochgeladen

"É 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
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesFabianeMartins35
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
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
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 

Kürzlich hochgeladen (20)

"É 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...
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
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....
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 

Análise Algoritmos OΩθ

  • 1. An´alise de Algoritmos Análise assintótica: ordens O, Ω e Θ – p. 1/35
  • 2. Análise assintótica Ao ver uma expressão como n + 10 ou n2 + 1, pensamos geralmente em valores pequenos de n, valores próximos de zero. A análise de algoritmos faz exatamente o contrário: ignora os valores pequenos e concentra-se nos valores enormes de n. Esse tipo de análise chama-se análise “assintótica”. – p. 2/35
  • 3. Análise assintótica - exemplo Considere o número de operações de dois algoritmos que resolvem um mesmo problema, como função do tamanho n da entrada. Algoritmo 1: f1(n) = 2n2 + 5n operações Algoritmo 2: f2(n) = 500n + 4000 operações Dependendo do valor de n, o Algoritmo 1 pode requerer mais ou menos operações que o Algoritmo 2. (Compare as duas funções para n = 10 e n = 100.) – p. 3/35
  • 4. Análise assintótica - exemplo Nosso interesse é estudar o comportamento assint´otico das funções, ou seja, quando n → ∞. Em geral, os termos inferiores e as constantes multiplicativas contribuem pouco na comparação e podem ser descartados. – p. 4/35
  • 5. Análise assintótica - exemplo O importante é observar que f1(n) tem crescimento proporcional a n2 (quadrático), ao passo que f2(n) tem crescimento proporcional a n (linear). Um crescimento quadrático é pior que um crescimento linear. Assim, vamos preferir o Algoritmo 2. – p. 5/35
  • 6. Análise assintótica - outro exemplo Para valores enormes de n, as funções n2 , 3 2 n2 , 9999n2 , n2 1000 , n2 + 100n crescem todas com a mesma velocidade e portanto são todas “equivalentes”. Nesse estudo, as funções são classificadas em “ordens”; todas as funções de uma mesma ordem são equivalentes. As cinco funções acima, por exemplo, pertencem à mesma ordem. – p. 6/35
  • 7. Importância da análise assintótica Na tabela abaixo, os valores representam o tamanho da maior instância solucionável em uma hora. Computador Computador 100 Computador 1000 Função atual vezes mais rápido vezes mais rápido n N 100N 1000N n log n N1 22, 5N1 140, 2N1 n2 N2 10N2 31, 6N2 n3 N3 4, 6N3 10N3 2n N4 N4 + 6 N4 + 10 – p. 7/35
  • 8. Funções assintoticamente não negativas Restringiremos a atenção a funções assintoticamente não negativas, ou seja, funções f tais que f(n) ≥ 0 para todo n “suficientemente grande”. Mais explicitamente, f é assintoticamente não negativa se existe n0 tal que f(n) ≥ 0 para todo n maior que n0. – p. 8/35
  • 9. An´alise de Algoritmos Análise assintótica: ordem O – p. 9/35
  • 10. Ordem O Dadas funções assintoticamente não negativas f e g, dizemos que f est´a na ordem O de g e escrevemos f = O(g) se f(n) ≤ c.g(n) para algum c positivo e para todo n suficientemente grande. – p. 10/35
  • 11. Ordem O Em outras palavras, f = O(g) se existe um número positivo c e um número n0 tais que f(n) ≤ c.g(n) para todo n maior que n0. – p. 11/35
  • 12. Ordem O - Exemplos A notação O fornece limites superiores de funções que, por sua vez, correspondem a tempos de execução de algoritmos. – p. 12/35
  • 13. Ordem O - Exemplos A notação O fornece limites superiores de funções que, por sua vez, correspondem a tempos de execução de algoritmos. Exemplo 1: Se f(n) ≤ 9999g(n) para todo n ≥ 1000 – p. 12/35
  • 14. Ordem O - Exemplos A notação O fornece limites superiores de funções que, por sua vez, correspondem a tempos de execução de algoritmos. Exemplo 1: Se f(n) ≤ 9999g(n) para todo n ≥ 1000 então f = O(g). – p. 12/35
  • 15. Ordem O - Exemplos Exemplo 2: Suponha que f(n) = 2n2 + 3n + 4. – p. 13/35
  • 16. Ordem O - Exemplos Exemplo 2: Suponha que f(n) = 2n2 + 3n + 4. 2n2 + 3n + 4 ≤ 2n2 + 3n2 + 4n2 = 9n2 para todo n ≥ 1. – p. 13/35
  • 17. Ordem O - Exemplos Exemplo 2: Suponha que f(n) = 2n2 + 3n + 4. 2n2 + 3n + 4 ≤ 2n2 + 3n2 + 4n2 = 9n2 para todo n ≥ 1. Portanto, f(n) = O(n2 ). – p. 13/35
  • 18. Ordem O - Exemplos Exemplo 3: Suponha que f(n) = 3 + 2 n e que g(n) = 1. – p. 14/35
  • 19. Ordem O - Exemplos Exemplo 3: Suponha que f(n) = 3 + 2 n e que g(n) = 1. Então 3 + 2 n ≤ 3 + 1 = 4 = 4.g(n) para todo n ≥ 2. – p. 14/35
  • 20. Ordem O - Exemplos Exemplo 3: Suponha que f(n) = 3 + 2 n e que g(n) = 1. Então 3 + 2 n ≤ 3 + 1 = 4 = 4.g(n) para todo n ≥ 2. Portanto, f(n) = O(g(n)) = O(1). – p. 14/35
  • 21. Ordem O - Exemplos Exemplo 4: Suponha que f(n) = n3 e que g(n) = 200n2 . Será verdade que f(n) = O(g(n))? – p. 15/35
  • 22. Ordem O - Exemplos Exemplo 4: Suponha que f(n) = n3 e que g(n) = 200n2 . Será verdade que f(n) = O(g(n))? Se existem c e n0 tais que f(n) ≤ c.g(n), teremos n ≤ 200c para todo n ≥ n0. Mas isso é absurdo! – p. 15/35
  • 23. Ordem O - Exemplos Exemplo 4: Suponha que f(n) = n3 e que g(n) = 200n2 . Será verdade que f(n) = O(g(n))? Se existem c e n0 tais que f(n) ≤ c.g(n), teremos n ≤ 200c para todo n ≥ n0. Mas isso é absurdo! Logo, f(n) = O(g(n)). – p. 15/35
  • 24. Ordem O - Exercícios Prove os disprove as afirmações: 1. 10n = O(n) 2. 10n2 = O(n) 3. 10n55 = O(2n) 4. n2 + 200n + 300 = O(n2) 5. n2 − 200n − 300 = O(n) 6. 3 2n2 + 7 2n − 4 = O(n) 7. 3 2n2 + 7 2n − 4 = O(n2) 8. n3 − 999999n2 − 1000000 = O(n2) – p. 16/35
  • 25. Ordem O - Exercícios 9. Seja n k o número de combinações de n objetos tomados k a k. Mostre n 2 = O(n2). Prove os disprove as afirmações: 10. 2n+1 = O(2n) 11. 3n = O(2n) 12. log2 n = O(log3 n) 13. log3 n = O(log2 n) 14. log2 n = O(n) 15. 100 log n − 10n + 2n log n = O(n log n) – p. 17/35
  • 26. Limite superior (upper bound) A notação O também é utilizada para indicar limites superiores para problemas. – p. 18/35
  • 27. Limite superior (upper bound) A notação O também é utilizada para indicar limites superiores para problemas. Dado um problema, por exemplo, o de multiplicação de duas matrizes quadradas n × n. – p. 18/35
  • 28. Limite superior (upper bound) A notação O também é utilizada para indicar limites superiores para problemas. Dado um problema, por exemplo, o de multiplicação de duas matrizes quadradas n × n. Conhecemos um algoritmo para resolver este problema (pelo método trivial) de complexidade O(n3 ). – p. 18/35
  • 29. Limite superior Sabemos assim que a complexidade deste problema não deve superar O(n3 ), uma vez que existe um algoritmo que o resolve com esta complexidade, e dizemos que uma cota superior ou limite superior para este problema é O(n3 ). – p. 19/35
  • 30. Limite superior Sabemos assim que a complexidade deste problema não deve superar O(n3 ), uma vez que existe um algoritmo que o resolve com esta complexidade, e dizemos que uma cota superior ou limite superior para este problema é O(n3 ). A cota superior de um problema pode mudar se alguém descobrir um outro algoritmo melhor. – p. 19/35
  • 31. Limite superior V. Strassen apresentou em 1969 um algoritmo para multiplicação de matrizes de complexidade O(nlog 7 ) = O(n2.807 ). – p. 20/35
  • 32. Limite superior V. Strassen apresentou em 1969 um algoritmo para multiplicação de matrizes de complexidade O(nlog 7 ) = O(n2.807 ). Assim a cota superior para o problema de multiplicação de matrizes passou a ser O(nlog 7 ). – p. 20/35
  • 33. Limite superior Em 1990, Coppersmith e Winograd melhoraram esta marca para O(n2.376 ); – p. 21/35
  • 34. Limite superior Em 1990, Coppersmith e Winograd melhoraram esta marca para O(n2.376 ); Em 2010, A. Stothers apresentou um algoritmo de complexidade O(n2.373 ); – p. 21/35
  • 35. Limite superior Em 1990, Coppersmith e Winograd melhoraram esta marca para O(n2.376 ); Em 2010, A. Stothers apresentou um algoritmo de complexidade O(n2.373 ); Em 2011, V. Willians melhorou ainda mais esta marca para O(n2.372 ). – p. 21/35
  • 36. Limite superior Em 1990, Coppersmith e Winograd melhoraram esta marca para O(n2.376 ); Em 2010, A. Stothers apresentou um algoritmo de complexidade O(n2.373 ); Em 2011, V. Willians melhorou ainda mais esta marca para O(n2.372 ). Portanto, a cota superior atual para o problema da multiplicação de matrizes é O(n2.372 ). – p. 21/35
  • 37. Analogia com record mundial A cota superior para um problema é análoga ao record mundial de uma modalidade de atletismo. Ele é estabelecido pelo melhor atleta (algoritmo) do momento. Assim como o record mundial, a cota superior pode ser melhorada por um algoritmo (atleta) mais veloz. – p. 22/35
  • 38. Analogia com record mundial “Cota superior” - 100m. rasos 1988 Carl Lewis 9s 92 1993 Linford Christie 9s 87 1999 Maurice Greene 9s 79 2007 Asafa Powell 9s 74 2008 Usain Bolt 9s 72 2009 Usain Bolt 9s 58 – p. 23/35
  • 39. Limite inferior (lower bound) As vezes é possível demonstrar que, para um dado problema, qualquer que seja o algoritmo a ser usado, o problema requer pelo menos um certo número de operações. – p. 24/35
  • 40. Limite inferior (lower bound) As vezes é possível demonstrar que, para um dado problema, qualquer que seja o algoritmo a ser usado, o problema requer pelo menos um certo número de operações. Essa complexidade é chamada cota inferior (lower bound) do problema. – p. 24/35
  • 41. Limite inferior Para o problema da multiplicação de matrizes quadradas n × n, apenas para ler os elementos das duas matrizes de entrada ou para produzir os elementos da matriz produto leva tempo O(n2 ). Assim uma cota inferior trivial é Ω(n2 ). – p. 25/35
  • 42. Algoritmo ótimo Se um algoritmo tem uma complexidade igual á cota inferior do problema, ele é assintoticamente ´otimo ou simplesmente ´otimo. – p. 26/35
  • 43. An´alise de Algoritmos Análise assintótica: ordem Ω – p. 27/35
  • 44. Ordem Ω A expressão “f = O(g)” tem o mesmo sabor que “f ≤ g”. Agora precisamos de um conceito que tenha o sabor de “f ≥ g”. – p. 28/35
  • 45. Ordem Ω Dadas funções assintoticamente não negativas f e g, dizemos que f est´a na ordem Ω de g e escrevemos f = Ω(g) se f(n) ≥ c.g(n) para algum c positivo e para todo n suficientemente grande. – p. 29/35
  • 46. Ordem Ω Em outras palavras, f = Ω(g) se existe um número positivo c e um número n0 tais que f(n) ≥ c.g(n) para todo n maior que n0. – p. 30/35
  • 47. Ordem Ω Em outras palavras, f = Ω(g) se existe um número positivo c e um número n0 tais que f(n) ≥ c.g(n) para todo n maior que n0. Qual a relação entre O e Ω? – p. 30/35
  • 48. Ordem Ω Em outras palavras, f = Ω(g) se existe um número positivo c e um número n0 tais que f(n) ≥ c.g(n) para todo n maior que n0. Qual a relação entre O e Ω? f = O(g) ⇔ g = Ω(f) – p. 30/35
  • 49. Ordem Ω - Exercícios 1. Seja n k o número de combinações de n objetos tomados k a k. Mostre n 2 = Ω(n2). 2. Prove que 100 log n − 10n + 2n log n está em Ω(n log n). 3. É verdade que 2n + 1 está em Ω(n)? – p. 31/35
  • 50. An´alise de Algoritmos Análise assintótica: ordem Θ – p. 32/35
  • 51. Ordem Θ Além dos conceitos que têm o sabor de “f ≤ g” e de “f ≥ g”, precisamos de um que tenha o sabor de “f = g. – p. 33/35
  • 52. Ordem Θ Dizemos que as funções f e g estão na mesma ordem e escrevemos f = Θ(g) se f = O(g) e f = Ω(g). Em outras palavras, f = Θ(g) significa que existe números positivos c e d tais que c.g(n) ≤ f(n) ≤ d.g(n) para todo n suficientemente grande. – p. 34/35
  • 53. Ordem Θ - Exercícios Prove ou disprove: 1. 9999n2 = Θ(n2) 2. (3/2)n2 + (7/2)n − 4 = Θ(n2) 3. n2/1000 − 999n = Θ(n2) 4. log2 n + 1 = Θ(log10 n) – p. 35/35