Vous êtes sur la page 1sur 19

Mtodos de Pesquisa: Seqencial e Binria

Prof. Alexandre Parra


http://www.joinville.udesc.br/portal/professores/parra/

Roteiro

Contextualizao Pesquisa Seqencial Pesquisa Binria

Roteiro

Contextualizao Pesquisa Seqencial Pesquisa Binria

Contextualizao

Apresentaremos e discutiremos diferentes estratgias para efetuarmos a pesquisa (busca) de um elemento especfico em um conjunto de dados.

Esta operao muito importante, pois encontrada com muita freqncia em diversas aplicaes. Apresentaremos os mtodos de pesquisa seqencial e binria sobre a estrutura de dados vetor.

Roteiro

Contextualizao Pesquisa Seqencial Pesquisa Binria

Pesquisa sobre Vetores

Pesquisa Seqencial (PS)


Forma mais simples de realizar pesquisas. Metodologia: Percorre o vetor, elemento por elemento, verificando se o elemento desejado est presente no vetor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

14 21

45 12

86 98 46 53 24

15 90 47

Pergunta: Como verificar se o elemento 90 est presente no vetor acima? Pergunta: Quantas comparaes so necessrias para achar o elemento 90?

Caractersticas

Extremamente simples o algoritmo; Pode ser muito ineficiente quando o conjunto de dados muito grande.

Desempenho Computacional

Pior Caso: quando necessrio realizar n comparaes (onde n o nmero de elementos);


Qual o cenrio de pior caso possvel ?

Melhor Caso: quando necessrio realizar somente uma comparao;


Qual o cenrio de melhor caso possvel ?

Caso Mdio: quando necessrio realizar cerca de n/2 comparaes.


Qual o cenrio de caso mdio possvel ?

Anlise de Complexidade da PS

Pode-se desconsiderar (melhor e pior caso).

os

casos

extremos

Portanto, qual a complexidade do algoritmo de busca seqencial sobre vetores ?

Perguntas

Seria possvel melhorarmos a eficincia do mtodo apresentado? Como !?

Roteiro

Contextualizao Pesquisa Seqencial Pesquisa Binria

Pesquisa sobre Vetores

Pesquisa Binria (PB)

Forma mais eficiente de realizar pesquisas em relao ao mtodo de PS.

Metodologia:

Consiste em comparar alguns itens do vetor com o dado (chave alvo) que deseja-se encontrar.

Premissa: os dados contidos no vetor j esto ordenados segundo um critrio.

Pesquisa sobre Vetores

Metodologia (Cont...):

Passos do processo:
1) Checar onde est o ponto mdio do vetor. 2) Comparar o elemento do ponto mdio (EPM) com a chave alvo (CA). 3) Caso no encontre o dado no passo 2, continuar a pesquisa da seguinte forma:

Caso CA<EPM realizar a pesquisa no sub-vetor a esquerda do EPM, partindo do passo 1. Caso CA>PM realizar a pesquisa no sub-vetor a direita do EPM, partindo do passo 1. Caso CA=EPM, ento a pesquisa para com sucesso, pois achou o dado desejado!

Exemplo de Pesquisa Binria


Exemplo Inicial:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

14

21

45

12

86

98

46

53

24

15

90

47

Aps ordenao:
1 2 3 4 5 6 7 8

!!!???
9 10 11 12 13 14 15 16

12

14

15

21

24

45

46

47

53

86

90

98

Pergunta: Como verificar se o elemento 90 est presente no vetor acima? Pergunta: Quantas comparaes so necessrias para achar o elemento 90? Pergunta: Como verificar se o elemento 71 est presente no vetor acima? Pergunta: Quantas comparaes so necessrias para achar o elemento 71?

Ilustrao de pesquisa usando PB


n

(n-1)/2

(n-1)/2

(n-3)/4

(n-3)/4

(n-3)/4

(n-3)/4

(n-7)/8

1 .....

(n-7)/8

(n-7)/8

(n-7)/8

(n-7)/8

1 .....

(n-7)/8

(n-7)/8

1 .....

(n-7)/8

.....

Complexidade da Pesquisa Binria

Pior Caso: quando o dado desejado encontra-se na folha da rvore ou no existe. Portanto: O(log2n) Melhor Caso: quando o dado desejado encontra-se na raiz da rvore. Portanto: O(1) Caso Mdio: quando o dado desejado encontra-se prximo do meio da rvore. Portanto: O(log2n)

Complexidade da Pesquisa Binria


Nvel da partio Segmentos Comparaes

0 1 2 3
Total:
Total
log 2 n i 1

1 2 4 8

n1 n 3 = (((n - 1) / 2) - 1) * 2 n 7 = (((n - 3) / 4) - 1) * 4 n 15 = (((n - 7) / 8) - 1) * 8

(n - 1) + (n - 3) + (n - 7) + (n - 15) + log2n vezes


i 2

n 2 1 n log

log 2 n i 1

2 1 n log
i

n log 2 n

log 2 n

i 1

2i

Anlise de Complexidade da PB (3/3)


Total n log 2 n log 2 n
log 2 n

i 1

2i
n

Soma dos termos de uma PG

x n 1 1 xk x 1 k 0

log 2 n

i 1

2 log 2 n 1 1 0 2 2 2(2 log 2 n 1) 2(n 1) 2 1


i

Total n log2 n log2 n 2(n 1) O(n log2 n)

Pesquisa Seqencial versus Binria


qtd de dados 10 50 100 500 1.000 5.000 10.000 50.000 100.000 500.000 1.000.000 5.000.000 10.000.000

O(n)
1,00E+01 5,00E+01 1,00E+02 5,00E+02 1,00E+03 5,00E+03 1,00E+04 5,00E+04 1,00E+05 5,00E+05 1,00E+06 5,00E+06 1,00E+07

O(log2n)
3,32E+00 5,64E+00 6,64E+00 8,97E+00 9,97E+00 1,23E+01 1,33E+01 1,56E+01 1,66E+01 1,89E+01 1,99E+01 2,23E+01 2,33E+01

Vous aimerez peut-être aussi