1 / 14

Algoritmos de Busca Parte II

Algoritmos de Busca Parte II. Liandra Léa Ramos Raíssa Marson. Busca Binária. Parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento busca (chave) com o elemento no meio do vetor. Busca Binária. Entrada:

lazaro
Télécharger la présentation

Algoritmos de Busca Parte II

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. Algoritmos de Busca Parte II Liandra Léa Ramos Raíssa Marson

  2. Busca Binária • Parte do pressuposto de que o vetor está ordenado e realiza sucessivas divisões do espaço de busca comparando o elemento busca (chave) com o elemento no meio do vetor.

  3. Busca Binária • Entrada: • - vetor ordenado com n elementos. • Saída: • - n, se o elemento procurado se encontra em vet[n]; • - (-1), se o elemento procurado não se encontra no vetor.

  4. Busca Binária Padrão • Embora a escolha do ponto de início da busca possa ser arbitrária, pois o algoritmo funciona independentemente dele, o valor dessa variável influencia diretamente na eficiência do algoritmo • A solução ótima é escolher um elemento no meio (ou mais próximo possível do meio) da sequência.

  5. Busca Binária Padrão • Procedimento: • - Compara a chave (chamamos de elem) com o elemento do meio do vetor • - Se elem for menor, pesquisa na primeira metade • - Se elem for maior, pesquisa na segunda metade • - Se for igual, retorna a posição.

  6. Busca Binária Padrão ... Ini = 0 fim = N - 1 sucesso =0 enquanto ( ( ini ≤ fim ) e ( sucesso = 0 ) ) meio = floor( (fim+ini)/2 ) //usa só a parte inteira da divisão se ( a [meio] = x ) sucesso = 1 senão se ( a [meio] < x ) ini = meio + 1 senão fim =meio – 1 fim se fim se fim enquanto ...

  7. Busca Binária Rápida • A eficiência do algoritmo pode ser melhorada se o sucesso (término) da busca não for testado em todo loop. • Sucesso ocorre apenas uma vez em todo o processo

  8. Busca Binária Rápida ... { //no início consideramos todo o vetor int ini = 0 int fim = n - 1 int meio enquanto ( ini <=fim ){ meio = floor( (fim+ini)/2 ); se ( a[meio] < x ) ini = meio + 1 //ajusta posição inicial senão fim = meio – 1 //ajusta posição final retorne meio; //elemento encontrado } retorne -1; //não encontrou o elemento ...

  9. Busca Binária Rápida • Implementação • //retorna a posição onde o item foi encontrado ou não encontrado. • // A função abaixo recebe um número x e um vetor crescente v[0..n-1]. Ela devolve um índice meio em 0..n-1 tal que v[meio] == x. Se tal meio não existe, devolve -1. • int • buscaBinaria2( int x, int n, int v[]) { • return bb( x, 0, n-1, v); } • // A função bb recebe um número x e um vetor crescente v[ini..fim]. Ela devolve um índice meio em ini..fim tal que v[meio] == x. Se tal meio não existe, devolve -1. • int • bb ( int x, int ini, int fim, int v[]) { • if (ini > fim) return -1; • else { • int meio = (ini + fim)/2; • If (v[meio] == x) return meio; • if (v[meio] < x) • return bb( x, meio+1, fim, v); • else • return bb( x, ini, meio-1, v); • } • }

  10. Busca Binária Rápida • Análise • - Pior caso: log n • - elemento não está no vetor • - a cada repetição, a parte considerada na busca é ksdm dividida à metade

  11. Busca Binária Rápida • Análise • Considerando os algoritmos de busca vistos, a tabela abaixo faz uma comparação da ordem de grandeza dos mesmos

  12. Busca Binária Rápida

  13. Bibliografia • http://www.midiacom.uff.br/~debora/protocolos/pdf/capitulo17.pdf • http://dcm.ffclrp.usp.br/~augusto/icii/icii_4_busca_2.pdf • http://www.ime.usp.br/~pf/algoritmos/aulas/bubi2.html

  14. OBRIGADA

More Related