1 / 19

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

Métodos de Pesquisa: Seqüencial e Binária. Prof. Alexandre Parra http://www.joinville.udesc.br/portal/professores/parra/. Roteiro. Contextualização Pesquisa Seqüencial Pesquisa Binária. Roteiro. Contextualização Pesquisa Seqüencial Pesquisa Binária. Contextualização.

kalin
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Métodos de Pesquisa: Seqüencial e Binária Prof. Alexandre Parrahttp://www.joinville.udesc.br/portal/professores/parra/

  2. Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária

  3. Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária

  4. 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 freqüência em diversas aplicações. • Apresentaremos os métodos de pesquisa seqüencial e binária sobre a estrutura de dados vetor.

  5. Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária

  6. 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?

  7. Características • Extremamente simples o algoritmo; • Pode ser muito ineficiente quando o conjunto de dados é muito grande.

  8. Desempenho Computacional • Pior Caso: é quando é necessário realizar n comparações (onde n é o número de elementos); Qual o cenário de pior caso possível ? • Melhor Caso: é quando é necessário realizar somente uma comparação; 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 ?

  9. Análise de Complexidade da PS • Pode-se desconsiderar os casos extremos (melhor e pior caso). • Portanto, qual a complexidade do algoritmo de busca seqüencial sobre vetores ?

  10. Perguntas • Seria possível melhorarmos a eficiência do método apresentado? • Como !?

  11. Roteiro • Contextualização • Pesquisa Seqüencial • Pesquisa Binária

  12. 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.

  13. 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!

  14. Exemplo de Pesquisa Binária Exemplo Inicial: Após ordenação: !!!??? 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? 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?

  15. (n-1)/2 1 (n-1)/2 (n-3)/4 1 (n-3)/4 (n-3)/4 1 (n-3)/4 (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 ..... ..... ..... ..... Ilustração de pesquisa usando PB n

  16. 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)

  17. Complexidade da Pesquisa Binária Nível da partiçãoSegmentosComparações 0 1 n – 1 1 2 n – 3 = (((n - 1) / 2) - 1) * 2 2 4 n – 7 = (((n - 3) / 4) - 1) * 4 3 8 n – 15 = (((n - 7) / 8) - 1) * 8 ……… Total: (n - 1) + (n - 3) + (n - 7) + (n - 15) + …log2n vezes

  18. Análise de Complexidade da PB (3/3) Soma dos termos de uma PG

  19. Pesquisa Seqüencial versus Binária

More Related