next up previous contents
Next: Busca binária Up: Busca Previous: Busca   Sumário

Busca linear

No caso da implementação mais simples de uma tabela, as suas entradas poderiam estar em qualquer ordem -- por exemplo, a ordem em que foram criadas. Neste caso, a operação de busca por um valor tem que ser exaustiva, ou seja, eventualmente todas as entradas deverão ser pesquisadas a fim de determinar se a chave está ou não presente na tabela.

Este procedimento de busca linear está descrito de forma simplificada no Algoritmo 2.1. Neste algoritmo, os argumentos de entrada são a tabela onde a busca será realizada e a chave de busca.


\begin{Program}
% latex2html id marker 683\begin{algorithm}{linearSearch}{\tex...
... \\
\RETURN \NIL
\end{algorithm}\caption{Busca linear em tabela.}\end{Program}

Esse algoritmo começa a analisar a tabela a partir da primeira posição, podendo potencialmente analisar todas as posições da tabela -- a máxima quantidade de posições analisáveis está restrita ao número de elementos na tabela. A chave associada a cada entrada da tabela é comparada com a chave de busca. Caso as duas chaves sejam iguais, a entrada foi encontrada e o algoritmo encerra retornando o valor associado à chave para essa entrada. Caso a busca chegue ao final da tabela sem que a chave especificada tenha sido encontrada, o algoritmo encerra retornando o valor especial NIL.

O atrativo desse procedimento é a simplicidade. Porém, seu uso está restrito a tabelas pequenas, pois para tabelas grandes ele é muito ineficiente. O tempo de pesquisa cresce linearmente com o número de entradas na tabela, ou seja, o algoritmo apresenta complexidade temporal $ O(n)$.


next up previous contents
Next: Busca binária Up: Busca Previous: Busca   Sumário
Ivan L. M. Ricarte 2003-02-14