Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos de Pesquisa
Jos Fonseca Instituto Superior de Tecnologias Avanadas 22 de Maro de 2006
Sumrio
Algoritmos de pesquisa
Pesquisa linear Pesquisa binria Pesquisa por interpolao Pesquisa por tabelas de disperso Pesquisa de sequncias de caracteres
Algoritmos de Pesquisa
So algoritmos que pesquisam a posio de um elemento (ou mais) numa lista. Podem ser aplicados na pesquisa de:
Algoritmos de Pesquisa
Tambm podem ser aplicados na pesquisa de solues de problemas genricos no conjunto das solues possveis:
encontrar os nmeros primos at 100 encontrar os valores para os quais uma funo real zero encontrar os clientes cujo somatrio de vendas ascende 1000
Pesquisa Linear
Temporal: O(n) Espacial: O(1) No obriga a nenhuma pr-processamento dos dados (tal como ordenar) Lento se forem efectuadas vrias pesquisas ento prefervel utilizar outros algoritmos com complexidadeAlgoritmos e Estruturas de Dados temporal menor.
Vantagens:
Desvantagens:
Pesquisa Binria
Consiste em verificar o elemento mediano de uma lista ordenada e assim eliminar metade dos elementos em cada verificao. Complexidade:
Temporal: O(log n) Espacial: O(1) Mais rpido que a pesquisa linear. Obriga a ordenar a lista, no sendo compensador para procurar poucas vezes, ou se a lista for alterada frequentemente. de Dados Algoritmos e Estruturas
Vantagens:
Desvantagens:
Variante da pesquisa binria em que escolhe o elemento a verificar de acordo com a interpolao
Por exemplo, utilizado pelas pessoas quando procuram uma palavra no dicionrio. Temporal:
O(log (log n)) na melhor das hipteses O(n) na pior das hipteses
Complexidade:
Desvantagens:
Consiste em colocar todos os elementos numa tabela de acordo com uma regra simples. Complexidade:
Temporal: O(1) Espacial: O(n) Muito rpido. Uso de memria. Alteraes lista podem trazer vrias complicaes (ineficincias).
Algoritmos e Estruturas de Dados 8
Vantagens:
Desvantagens:
Algoritmos que procuram ocorrncia(s) de uma sequncia de m caracteres noutra sequncia de n caracteres. Algoritmo naive/fora bruta:
Procura a ocorrncia da seq. em cada posio da outra. Complexidade temporal: O(mn) na pior das hipteses. Mantm o nmero de caracteres correspondentes numa varivel de estado, nunca voltando atrs. Complexidade temporal: O(n)
Algoritmos e Estruturas de Dados 10
Referncias
http://en.wikipedia.org/wiki/Search_algorithms
11