métodos de pesquisa: seqüencial e binária professor luiz josé hoffmann filho [email protected]

17
Métodos de Pesquisa: Métodos de Pesquisa: Seqüencial e Binária Seqüencial e Binária Professor Luiz josé Hoffmann Filho [email protected]

Upload: kevin-carmona-martins

Post on 07-Apr-2016

228 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Métodos de Pesquisa: Métodos de Pesquisa: Seqüencial e BináriaSeqüencial e Binária

Professor Luiz josé Hoffmann [email protected]

Page 2: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

RoteiroRoteiroContextualizaçãoPesquisa SequencialPesquisa BináriaPesquisa Hash – espalhamentoPesquisa em árvore

Page 3: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

RoteiroRoteiroContextualizaçãoPesquisa SequencialPesquisa BináriaPesquisa Hash – espalhamentoPesquisa em árvore

Page 4: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

ContextualizaçãoContextualização• Apresentaremos e discutiremos diferentes

estratégias para efetuarmos a pesquisa (busca) de um elemento específico em um conjunto de dados.

• Esta operação é muito importante, pois é encontrada com muita frequência em diversas aplicações.

• Apresentaremos os métodos de pesquisa seqüencial e binária sobre a estrutura de dados vetor.

Page 5: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

RoteiroRoteiroContextualização

Pesquisa Seqüencial

Pesquisa Binária

Pesquisa hash – espalhamento

Pesquisa em árvore

Page 6: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Pesquisa sobre VetoresPesquisa sobre Vetores• Pesquisa Seqüencial (PS)

o Forma mais simples de realizar pesquisas.

o Metodologia: Percorre o vetor, elemento por elemento, verificando se o elemento desejado está presente no vetor.

14 24 2 1 15 90 47534698312 8645521 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pergunta: Como verificar se o elemento 90 está presente no vetor acima?Pergunta: Quantas comparações são necessárias para achar o elemento 90?

Page 7: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

CaracterísticasCaracterísticas • Extremamente simples o algoritmo;

• Pode ser muito ineficiente quando o conjunto de dados é muito grande.

Page 8: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Desempenho ComputacionalDesempenho Computacional• Pior Caso: é quando é necessário realizar n

comparações (onde n é o número de elementos);

Melhor Caso: é quando é necessário realizar somente uma comparação;

Qual o cenário de pior caso possível ?

Qual o cenário de melhor caso possível ?

Caso Médio: é quando é necessário realizar cerca de n/2 comparações.

Qual o cenário de caso médio possível ?

Page 9: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Análise de Complexidade da Análise de Complexidade da PSPS

• Pode-se desconsiderar os casos extremos (melhor e pior caso).

• Portanto, qual a complexidade do algoritmo de busca seqüencial sobre vetores ?

Page 10: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Perguntas Perguntas

• Seria possível melhorarmos a eficiência do método apresentado?

Como !?

Page 11: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

RoteiroRoteiroContextualização

Pesquisa Seqüencial

Pesquisa Binária

Pesquisa hash – espalhamento

Pesquisa em árvore

Page 12: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Pesquisa sobre VetoresPesquisa sobre Vetores• Pesquisa Binária (PB)

o Forma mais eficiente de realizar pesquisas em relação ao método de PS.

o Metodologia: • Consiste em comparar alguns itens do vetor com o dado (chave

alvo) que deseja-se encontrar.

• Premissa: os dados contidos no vetor já estão ordenados segundo um critério.

Page 13: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Pesquisa sobre VetoresPesquisa sobre Vetores• Metodologia (Cont...):

o Passos do processo:1) Checar onde está o ponto médio do vetor.2) Comparar o elemento do ponto médio (EPM) com a

chave alvo (CA).3) Caso não encontre o dado no passo 2, continuar a

pesquisa da seguinte forma:o Caso CA<EPM realizar a pesquisa no sub-vetor a esquerda do

EPM, partindo do passo 1.o Caso CA>PM realizar a pesquisa no sub-vetor a direita do EPM,

partindo do passo 1.o Caso CA=EPM, então a pesquisa para com sucesso, pois achou

o dado desejado!

Page 14: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Exemplo de Pesquisa BináriaExemplo de Pesquisa Binária

14 24 2 1 15 90 47534698312 8645521 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

1 46 47 53 86 90 984524211412 15532 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Pergunta: Como verificar se o elemento 90 está presente no vetor acima?

Exemplo Inicial:

Após ordenação:

Pergunta: Quantas comparações são necessárias para achar o elemento 90?

!!!???

Pergunta: Como verificar se o elemento 71 está presente no vetor acima?Pergunta: Quantas comparações são necessárias para achar o elemento 71?

Page 15: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Ilustração de pesquisa usando PBIlustração de pesquisa usando PB

(n-7)/8 1 (n-7)/8 (n-7)/8 1 (n-7)/8 (n-7)/8 1 (n-7)/8(n-7)/8 1 (n-7)/8

(n-3)/4 1 (n-3)/4 (n-3)/4 1 (n-3)/4

n

(n-1)/2 (n-1)/21

.....

.....

.....

.....

Page 16: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Complexidade da Pesquisa BináriaComplexidade da Pesquisa Binária• Pior Caso: quando o dado desejado encontra-se na

folha da árvore ou não existe. Portanto: O(log2n)

Melhor Caso: quando o dado desejado encontra-se na raiz da árvore. Portanto: O(1)

Caso Médio: quando o dado desejado encontra-se próximo do “meio” da árvore. Portanto: O(log2n)

Page 17: Métodos de Pesquisa: Seqüencial e Binária Professor Luiz josé Hoffmann Filho ljhfilho@gmail.com

Pesquisa Seqüencial versus Pesquisa Seqüencial versus Binária Binária

2,33E+011,00E+0710.000.000

2,23E+015,00E+065.000.000

1,99E+011,00E+061.000.000

1,89E+015,00E+05500.000

1,66E+011,00E+05100.000

1,56E+015,00E+0450.000

1,33E+011,00E+0410.000

1,23E+015,00E+035.000

9,97E+001,00E+031.000

8,97E+005,00E+02500

6,64E+001,00E+02100

5,64E+005,00E+0150

3,32E+001,00E+0110

O(log2n)O(n)qtd de dados

2,33E+011,00E+0710.000.000

2,23E+015,00E+065.000.000

1,99E+011,00E+061.000.000

1,89E+015,00E+05500.000

1,66E+011,00E+05100.000

1,56E+015,00E+0450.000

1,33E+011,00E+0410.000

1,23E+015,00E+035.000

9,97E+001,00E+031.000

8,97E+005,00E+02500

6,64E+001,00E+02100

5,64E+005,00E+0150

3,32E+001,00E+0110

O(log2n)O(n)qtd de dados