Você está na página 1de 11

Estrutura de Dados

Pesquisa de Dados
Aula 04
Prof. Lus Felippe Floriani
luis.felippe@ifsc.edu.br

Agenda:
4. Pesquisa de Dados
4.1 Pesquisa Sequencial
4.2 Pesquisa Binria
4.3 Clculo de Endereo (Hashing)

4. Pesquisa de Dados

Uma operao complexa e trabalhosa a consulta em tabelas.


Normalmente uma aplicao envolve grande quantidade de dados
que so armazenadas em Tabelas. As tabelas so compostas de
registros (normalmente possui uma chave), e os registros de campos.

4. Pesquisa de Dados

4.1 Pesquisa Sequencial


Mtodo mais simples de pesquisa em tabela, consiste em uma
varredura seqencial, sendo que cada campo comparado com o
valor que est sendo procurado. Esta pesquisa termina quando for
achado o valor desejado ou quando chegar o final da tabela.

Exerccios/Exemplos/Desafios
1. Escreva um programa que demonstre uma busca sequencial em uma estrutura que
possui os campos chave, nome, altura e peso.
2. Agora escreva um programa que demonstre uma busca sequencial ordenada por
chave de acesso.

4. Pesquisa de Dados

4.1 Pesquisa Binria

Mtodo de Pesquisa que s pode ser aplicada em tabelas ordenadas.

O mtodo consiste na comparao do "valor" com a chave localizada


na metade da tabela, pode ocorrer:

valor = chave....... chave localizada

valor < chave....... chave est na primeira metade (esquerda)

valor > chave....... chave est na segunda metade (direita)

4. Pesquisa de Dados

4.1 Pesquisa Binria

A cada comparao, a rea de pesquisa reduzida a


metade do nmero de elementos.

O nmero mximo de comparaes ser:

Exerccios/Exemplos/Desafios
1. Escreva um programa que demonstre busca binria em uma tabela ordenada por
chave.

4. Pesquisa de Dados

4.2 Clculo de Endereo (Hashing)


Alm de um mtodo de pesquisa, este mtodo tambm um mtodo de
organizao fsica de tabelas (Classificao), onde cada dado de entrada
armazenado em um endereo previamente calculado (atravs de uma funo),
desta forma, o processo de busca igual ao processo de entrada, ou seja, eficiente.
Um dos problemas definir bem o tipo de funo a ser usada, pois normalmente as
funes geram endereos repetidos. A eficincia deste mtodo depende do tipo de
funo.

Numa tabela com n elementos com valores na faixa de[0..max] pode ser utilizada a
seguinte a funo:

Onde: n o nmero de elementos.

4. Pesquisa de Dados

Exemplo:
n = 53
entrada: [0..1000]

Note que no clculo dos endereos houve repeties, tais como: 2, 33, 23, 10 e 50,
por causa disto, necessrio verificar se o endereo est ocupado ou no.
Finalmente os endereos calculados so:

Exerccios/Exemplos/Desafios
1. Escreva um programa que demonstre operaes em uma tabela hashing.

Você também pode gostar