Você está na página 1de 10

Tcnicas de Programao II

Prof. MSc. Moiss Fernando Lima


Centro Universitrio Filadlfia Cincia da Computao

Mtodos de Busca
Aula 05

Prof. MSc. Moiss Fernando Lima

Mtodos de Busca
At agora, vimos como trabalhar com dados fornecidos das mais diversas formas pelos usurios. Evidentemente, possuir dados no ajuda em nada se o programador ou o usurio no souberem como recuper-los eficientemente Exemplos:
Imagine uma festa com 500 convidados na qual no se sabe quem eles so ou se determinada pessoa foi ou no convidada! Imagine, nas eleies, que voc queira votar naquele nico poltico honesto que conhece, mas no sabe qual o nmero!

Prof. MSc. Moiss Fernando Lima

Mtodos de Busca
Procurar nomes e nmeros em listas parece ser uma atividade trivial, porm quando a quantidade de elementos muito grande, so necessrios recursos adicionais para facilitar o procedimento. Sistemas trabalham, freqentemente, com a busca de nmeros, cdigos, nomes, siglas etc., e precisam de uma resposta rpida para no comprometer seu desempenho. Algoritmos de busca so alguns dos mais utilizados no mundo da informtica, sendo aplicados em banco de dados, internet, jogos etc. Estudaremos dois algoritmos: busca linear e busca binria.
3 Prof. MSc. Moiss Fernando Lima

Busca Linear (ou Seqencial)


A maneira mais bvia de fazer uma busca comparar o elemento que se est procurando com todos os elementos armazenados, um a um, isto , procurar o elemento seqencialmente at que ele seja encontrado. O algoritmo consiste em uma estrutura de repetio que percorre toda a seqncia de elementos, realizando um teste condicional que compara o elemento desejado com os elementos existentes na seqncia.

Prof. MSc. Moiss Fernando Lima

Busca Linear

Comparaes sucessivas so feitas entre o elemento que se procura e os elementos da lista, at que uma igualdade seja estabelecida

Quando o elemento encontrado, retorna-se o valor verdadeiro, o que indica o sucesso da busca. Finalmente, a estrutura de repetio encerrada. A execuo da rotina de busca termina quando a condio de busca satisfeita ou quando todo o conjunto percorrido e o elemento no encontrado.
5 Prof. MSc. Moiss Fernando Lima

Algoritmo de Busca Linear


Algoritmo Busca_Linear declare vetor [0..n] de <tipo de dados do vetor> declare x de <tipo de dados da informao procurada> declare encontrou lgico declare i inteiro Leia x Para i de 0 at <tamanho do vetor> faa Se (x = vetor[i]) encontrou verdadeiro Seno encontrou falso Fim Se Fim Para Fim do Algoritmo

Prof. MSc. Moiss Fernando Lima

Algoritmo de Busca Linear


Uma variao bastante comum desta e das demais estruturas de busca retorna o ndice do elemento procurado na seqncia. Para isso, basta substituir a varivel lgica por uma varivel de tipo inteiro que receber o indce do elemento quando este for encontrado, ou um valor no associado a nenhum ndice, por exemplo, -1. A variao escolhida fica a cargo do programador, que utilizar de acordo com suas necessidades.

Prof. MSc. Moiss Fernando Lima

Implementao do Algoritmo de Busca Linear


public class Busca { public static boolean linear (int x, int dados[]) { int n = dados.length; for (int i = 0; i < n; i++) if (x == dados[i]) return true; return false; } public static boolean linear (String x, String dados[]) { int n = dados.length; for (int i = 0; i < n; i++) if (x.equals(dados[i])) return true; return false; } }
8 Prof. MSc. Moiss Fernando Lima

Exerccio resolver em sala


Faa um algoritmo que permita a execuo das seguintes funcionalidades:
1 Leitura de dados fornecidos pelo usurio 2 Leitura do elemento a ser buscado 3 Execuo da busca (informando o usurio se o elemento foi encontrado)

Prof. MSc. Moiss Fernando Lima

Você também pode gostar