Escolar Documentos
Profissional Documentos
Cultura Documentos
Escrito por:
Wanderson de Oliveira Paes
Orientado por:
Vinícius Menezes de Oliveira
Rio Grande/RS
15/07/2019
INTRODUÇÃO
ANÁLISE DE ALGORITMOS
ANÁLISE ASSINTÓTICA
É uma boa ideia para lidar com a questão acima em análise de algoritmos.
Em Análise Assintótica, nós avaliamos a performance do algoritmo em termos do
tamanho da entrada, noś não medimos o tempo de execução. Calculamos como o
tempo (ou espaço) usado por um algoritmo aumenta com o tamanho da entrada.
Por exemplo, considerando um problema de busca de um item em um vetor
ordenado. Uma maneira de procurar é usar Busca Linear (ordem de crescimento é
linear) e outro jeito é por Busca Binária (ordem de crescimento é logarítmica).
Considerando a execução do código de Busca Linear em um computador rápido e a
Busca Binária em um computador lento. Para valores de tamanho de vetor pequeno,
o computador rápido pode levar menos tempo. Porém depois de determinado
tamanho do vetor de entrada, a Busca Binária começa definitivamente a levar
menos tempo em comparação a Busca Linear, mesmo que a Busca Binária esteja
rodando em uma máquina lenta. Isso acontece por conta da ordem de crescimento.
Análise Assintótica sempre funciona?
Análise Assintótica não é perfeita, mas é o melhor caminho disponível para
análise de algoritmos. Você pode se deparar com algoritmo assintoticamente lento,
mas para sua aplicação com apenas entradas pequenas, ele é mais rápido que um
algoritmo assintoticamente mais rápido.
CASOS
Temos três casos de análise de algoritmos: Pior caso, Caso médio e Melhor
caso. Temos um exemplo de Busca Linear a seguir para analisar assintoticamente.
int buscaLinear(int vetor[], int tamanho, int x){
int i;
for (i=0; i<tamanho; i++){
if (vetor[i] == x) return i;
}
return -1;
}
maioria dos casos terão melhor e pior caso, como por exemplo o Insertion Sort, que
NOTAÇÃO ASSINTÓTICA