Buscar

Analise assintotica

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

Projeto e Análise de Algoritmos 
Prof: Elton Lever 
Universidade do Estado do Amazonas – UEA 
Centro de Estudos Superiores de Itacoatiara - CESIT 
Solução algorítmica 
• Algoritmo descreve ações sobre a instância de 
entrada. 
 
• Existem infinitos algoritmos corretos para um 
mesmo problema algorítmico. 
Instância de 
entrada 
Saída 
relacionada 
à Entrada 
Algoritmo 
Algoritmos 
• Algoritmo: A essência de um procedimento 
computacional composto por instruções 
sequenciais passo a passo. 
• Programa: Implementação de um algoritmo 
em uma dada linguagem de programação 
• Estrutura de dados: Forma de organizar os 
dados necessários à solução de um problema. 
Ordenação 
• Exemplo: 
Corretude 
 
Para qualquer entrada dada, o 
algoritmo termina com saída 
ordenada 
Tempo de Execução 
Depende de: 
• número de elementos (n). 
• o quão (parcialmente ordenada 
está a lista. 
• solução algorítmica. 
ENTRADA 
sequência de números 
SAÍDA 
uma permutação da 
sequência de entradas 
a1,a2,a3,...,an 
 
2, 5, 4, 10 e 7 
b1,b2,b3,...,bn 
 
2, 4, 5, 7 e 10 
Ordenação por Inserção 
para j=2 até n faça 
 Pivô:=A[j] 
 i ← j-1 
 enquanto i>0 e A[i]>pivô faça 
 A[i+1] ← A[i] 
 i--; 
 fim-enquanto 
 A[i+1] ← pivô; 
Fim-para 
2, 5, 4, 10 e 7 
Análise: Ordenação por Inserção 
• Determinar o tempo de execução com função do tamanho da entrada. 
para j=2 até n faça 
 
 Pivô:=A[j] 
 i ← j-1 
 enquanto i>0 e A[i]>pivô faça 
 
 A[i+1] ← A[i] 
 i--; 
 
 fim-enquanto 
 A[i+1] ← pivô; 
 
Fim-para 
 
n-1 vezes 
Para cada uma das 
n-1 vezes, tj vezes 
Análise: Ordenação por Inserção 
• Determinar o tempo de execução com função do tamanho da entrada. 
Melhor/Pior/Médio 
• Elementos já ordenados. 
• Todos os testes falham, o loop interno nunca é 
executado. 
• Neste caso, tj =1 e a operação é executada n 
vezes. 
• Portanto a complexidade de tempo é dada por 
f(n)=n-1 . 
Melhor/Pior/Médio 
• Melhor Caso 
 Elementos já ordenados. 
 T(n) = f(n), ou seja, tempo linear. 
• Pior Caso 
 Elementos em ordem inversa. 
 tj =j, T(n) = f(n
2), ou seja, tempo quadrático. 
• Caso Médio 
 tj =j/2, T(n) = f(n
2), ou seja, tempo 
quadrático. 
Melhor/Pior/Médio 
Melhor/Pior/Médio 
O pior caso é geralmente usado: 
• Estabelece um limite superior na complexidade 
de tempo do algoritmo. 
Melhor/Pior/Médio 
• Para alguns algoritmos o pior caso é bastante 
frequente. 
• Frequentemente o caso médio é tão ruim 
quando o pior caso. 
• Encontrar o caso médio pode ser muito difícil. 
Funções de Crescimento 
Notação O (O - Notation): 
• Limite assintótico superior. 
• f(n) = O(g(n)), se existem 
constantes positivas c e n0, 
f(n) ≤ c g(n) para n ≥ n0 . 
• f(n) e g(n) são funções sobre 
inteiros não negativos. 
Usada para análise do pior 
caso. 
Notação Assintótica 
Notação Ω: 
• limite assintótico inferior. 
• f(n) = Ω(g(n)) se existem 
constantes positivas c e n0, 
tal que c g(n) ≤ f(n) para 
todo n ≥ n0. 
• Usada para descrever o 
melhor caso de tempos de 
execução ou limites 
inferiores de problemas 
algorítmicos. 
Notação Assintótica 
Regra prática: 
 
• Remover termos de menor ordem e fatores 
constantes. 
• 50 n log n é O(n log n). 
• 7n - 3 é O(n). 
• 8n2 log n + 5n2 + n é O(n2 log n). 
 
• Nota: Mesmo que 50 n log n seja O(n5), utilizamos 
aproximações de menor ordem possível !!! 
Notação Assintótica 
Notação Θ: 
• Limite assintótico Máximo e 
Mínimo 
• f(n) = Θ(g(n)) se existem 
constantes c1, c2, e n0, tais que 
c1 g(n) ≤ f(n) ≤ c2 g(n) para n ≥ 
n0. 
• f(n) = Θ(g(n)) se, e somente se, 
f(n) = Ο(g(n)) e f(n) = Ω(g(n)). 
O(f(n)) é frequente confundido 
com Θ(f(n)). 
Notação Assintótica 
Notação o: f(n)=o(g(n)). 
• Para todo c positivo, deve existir n0 , tal que f(n) ≤ 
cg(n) para todo n ≥ n0. 
• Usada para comparação de tempos de execução. 
Se f(n)=o(g(n)), dizemos que g(n) domina f(n). 
 
Notação ω: f(n)=ω(g(n)). 
• Análoga a função o com relação à Ω. 
Notação Assintótica 
• Analogia com número reais 
• f(n) = O(g(n)) ≅ f ≤ g 
• f(n) = Ω(g(n)) ≅ f ≥ g 
• f(n) = Θ(g(n)) ≅ f = g 
• f(n) = o(g(n)) ≅ f < g 
• f(n) = ω(g(n)) ≅ f > g 
Notação Assintótica 
Exercícios 
• Verifique se as afirmativas são corretas: 
 
 
 
No pior caso, o algoritmo de inserção é Θ(n2). 
 
a) n2 – n + 30 
b) n3 + 2 logn + 20 
c) nk+1 
d) 22n 
e) 2nn + 4n O (3n) 
f) O (nE) 
 
Escrever em notação O, o, Ω, ω, Θ. 
a) 3n3 + 2n2 + n + 1 = O(n3) 
b) 7n2 = O(n) 
c) 2n+2 = O(2n) 
d) 22n = O(2n) 
e) 5n2 + 7n = Θ (n2) 
f) 6n3 + 5n2 ≠ Θ (n2) 
g) 9n3 + 3n = Ω (n) 
h) 7n2 = Ω(n) 
 
Prove se são verdadeiras ou falsas.

Outros materiais