![Page 1: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/1.jpg)
Clique para adicionar texto
Métodos de Pesquisa: Sequencial e Binária
![Page 2: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/2.jpg)
Roteiro Contextualização
Pesquisa Sequencial
Pesquisa Binária
![Page 3: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/3.jpg)
Roteiro Contextualização
Pesquisa Sequencial
Pesquisa Binária
![Page 4: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/4.jpg)
Contextualizaçã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 sequencial e binária sobre a estrutura de dados vetor.
![Page 5: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/5.jpg)
Roteiro Contextualização
Pesquisa Sequencial
Pesquisa Binária
![Page 6: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/6.jpg)
Pesquisa sobre Vetores Pesquisa Seqüencial (PS)
Forma mais simples de realizar pesquisas.
Metodologia: Percorre o vetor, elemento por elemento, verificando se o elemento desejado está presente no vetor.
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?
14 24 2 1 15 90 47534698312 8645521 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
![Page 7: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/7.jpg)
Características Extremamente simples o algoritmo;
Pode ser muito ineficiente quando o conjunto de dados é muito grande.
![Page 8: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/8.jpg)
Desempenho 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: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/9.jpg)
Análise de Complexidade da PS Pode-se desconsiderar os casos extremos
(melhor e pior caso).
Portanto, qual a complexidade do algoritmo de busca sequencial sobre vetores ?
![Page 10: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/10.jpg)
Perguntas Seria possível melhorarmos a eficiência do
método apresentado? Como !?
![Page 11: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/11.jpg)
Roteiro Contextualização
Pesquisa Sequencial
Pesquisa Binária
![Page 12: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/12.jpg)
Pesquisa sobre Vetores Pesquisa Binária (PB)
Forma mais eficiente de realizar pesquisas em relação ao método 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á estão ordenados segundo um critério.
![Page 13: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/13.jpg)
Pesquisa sobre Vetores Metodologia (Cont...):
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: 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, então a pesquisa para com sucesso, pois
achou o dado desejado!
![Page 14: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/14.jpg)
Exemplo 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
Pergunta: Como verificar se o elemento 90 está presente no vetor acima?
Exemplo Inicial:
Após ordenação:
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: 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: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/15.jpg)
Exemplo
![Page 16: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/16.jpg)
Exemplo
![Page 17: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/17.jpg)
Ilustraçã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 18: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/18.jpg)
Complexidade 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 19: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/19.jpg)
Complexidade da Pesquisa Binária
Nível da partição Segmentos Comparações
0 1 n – 1 1 2 n – 3 = (((n - 1) / 2) - 1) * 22 4 n – 7 = (((n - 3) / 4) - 1) * 43 8 n – 15 = (((n - 7) / 8) - 1) * 8 … … …
Total: (n - 1) + (n - 3) + (n - 7) + (n - 15) + …log2n vezes
![Page 20: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/20.jpg)
Pesquisa Seqüencial versus 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
![Page 21: Clique para adicionar texto Métodos de Pesquisa: Sequencial e Binária](https://reader035.vdocuments.mx/reader035/viewer/2022070508/570638661a28abb823902785/html5/thumbnails/21.jpg)
Exercícios1) Faça um programa em C que realize a pesquisa sequencial em uma lista de números inteiros. Peça para o programa ler os números até que o valor -999 seja digitado. Em seguida o programa deve pedir para o usuário digitar o número a ser procurado na lista e efetuar a busca sequencial, informando se o mesmo foi ou não encontrado e se foi, em qual posição da lista este se encontra.
2) Refaça o programa anterior para usar o algoritmo de busca binária.
3) Escreva uma versão recursiva do algoritmo de busca binária.