Você está na página 1de 6

Algoritmos e Estruturas de Dados

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 e Estruturas de Dados

Algoritmos de Pesquisa

So algoritmos que pesquisam a posio de um elemento (ou mais) numa lista. Podem ser aplicados na pesquisa de:

nmeros. texto, ou qualquer tipo de elementos cuja igualdade esteja definida.

Algoritmos e Estruturas de Dados

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

Algoritmos e Estruturas de Dados

Pesquisa Linear

Consiste em verificar cada elemento da lista at encontrar o elemento pretendido. Complexidade:


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:

Pesquisa por Interpolao

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:

Espacial: O(1) Potncialmente mais lento.


Algoritmos e Estruturas de Dados 7

Desvantagens:

Pesquisa por tabelas de disperso


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:

Tabela de disperso exemplo

Algoritmos e Estruturas de Dados

Pesquisa de seq. de caracteres

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

Algoritmo com mquina de estados finitos:


Referncias

http://en.wikipedia.org/wiki/Search_algorithms

http://en.wikipedia.org/wiki/Linear_search http://en.wikipedia.org/wiki/Binary_search http://en.wikipedia.org/wiki/Interpolation_search http://en.wikipedia.org/wiki/Hash_table http://en.wikipedia.org/wiki/String_searching_algorithm

Algoritmos e Estruturas de Dados

11

Você também pode gostar