Métodos de Pesquisa em Matriz

Quando se trabalha com matrizes, elas poderão gerar grandes tabelas, dificultando localizar um determinado elemento de forma rápida. Imagine uma matriz possuindo 4.000 elementos (4.000 nomes de pessoas). Será que você conseguiria encontrar rapidamente um elemento desejado de forma manual, mesmo estando a lista de nomes em ordem alfabética? Certamente que não. Para solucionar este tipo de problema, você pode fazer pesquisas em matrizes com o uso de programação. Serão apresentados dois métodos para efetuar pesquisa em uma matriz, sendo o primeiro o método sequencial e o segundo o método de pesquisa binária.

Método de Pesquisa Sequencial

O primeiro método consiste em efetuar a busca da informação desejada a partir do primeiro elemento sequencialmente até o último. Localizando a informação no caminho, ela é apresentada. Este método de pesquisa é lento, porém eficiente nos casos em que uma matriz encontra-se com seus elementos desordenados.

Método de Pesquisa Binária

previamente classificada, pois este método “divide” a lista em duas partes e “procura” saber se a informação a ser pesquisada está acima ou abaixo da linha de divisão. Se estiver acima, por exemplo, toda a metade abaixo é desprezada. Em seguida, se a informação não foi encontrada, é novamente dividida em duas partes, e pergunta se aquela informação está acima ou abaixo, e assim vai sendo executada até encontrar ou não a informação pesquisada. Pelo fato de ir dividindo sempre em duas partes o volume de dados é que o método recebe a denominação de pesquisa binária. Para exemplificar a utilização deste tipo de pesquisa, imagine a seguinte tabela.


A tabela está representando uma matriz do tipo vetor com 7 elementos literais. Deseja-se neste momento efetuar uma pesquisa de um dos seus elementos. No caso, será escolhido o elemento Waldir (por acaso o último registro da tabela).

O processo binário consiste em pegar o número de registro e dividir por dois. Sendo assim, 7 div 2 = 3; o que nos interessa é somente o valor do quociente inteiro. Então a tabela fica dividida em duas partes como em seguida:

Primeira parte após primeira divisão


Estando a tabela dividida em duas partes, deverá ser verificado se a informação Waldir está na primeira ou na segunda parte. Detecta-se que Waldir está na segunda parte. Desta forma despreza-se a primeira e divide-se em duas partes novamente a segunda parte da tabela. Como são 4 elementos divididos por 2, resultam duas tabelas, cada uma com dois elementos, conforme em seguida:


Após esta segunda divisão, verifica-se em qual das partes Waldir está situado. Veja que está na segunda parte; despreza-se a primeira e divide-se a segunda parte novamente por dois, sobrando um elemento em cada parte:


Após a terceira divisão, Waldir é encontrado na segunda parte da tabela. Se estivesse sendo pesquisado o elemento Whashington, este não seria apresentado por não existir.




 

Comentários

Postagens mais visitadas deste blog

Atividades Phyton com Estrutura de Repetição

Introdução à Lógica

Leitura e Escrita de Registros