busca binária multiplicativo - Multiplicative binary search

busca binária multiplicativo
Multiplicativo binário Pesquisa Depiction.svg
Visualização do algoritmo de busca binária multiplicativo, onde 7 é o valor-alvo.
Classe algoritmo de busca
Estrutura de dados ordem
desempenho de pior caso O (log n )
desempenho melhor caso O (1)
desempenho médio O (log n )
complexidade espaço de pior caso O (1)

Em ciência da computação , busca binária multiplicativo é uma variação de busca binária que usa uma permutação específica de chaves em uma matriz em vez da ordem de classificação usada por busca binária regular. Busca binária multiplicativo foi primeiramente descrita por Thomas Standish em 1980. Este algoritmo foi originalmente proposto para simplificar o cálculo do índice de ponto médio em pequenos computadores sem operações de divisão ou de mudança eficientes, mas o seu cache de natureza -amigável o torna adequado para pesquisa estática out-of-memory em orientada para o bloco de armazenamento como uma alternativa para árvores B + .

Busca binária multiplicativo é usada por alguns compiladores de otimização para implementar declarações switch .

Algoritmo

Busca binária multiplicativo opera em uma matriz classificada permutado. As chaves são armazenadas na matriz em sequência nível de ordem do equilibrada correspondente árvore de busca binária . Isto coloca o primeiro pivô de uma pesquisa binária como o primeiro elemento na matriz. O segundo eixos estão colocados nas duas posições seguintes.

Dada uma matriz Um dos n elementos com valores Um 0 ... A n -1 , e o valor alvo T , as seguintes sub-rotina usa pesquisa binária multiplicativo para encontrar o índice de T em A .

  1. Definir i para 0
  2. Se in , a busca termina sem sucesso.
  3. se A i = T , a pesquisa é feita; voltar i .
  4. se A i < T , definido i a 2 × i + 1 e vá para o passo 2.
  5. se A i > T , definido i a 2 × i + 2 e vá para o passo 2.

Veja também

Citations