Pesquisa binária (pesquisa dicotomizada)

Uma pesquisa binária, também chamada pesquisa dicotomizada, é um esquema digital para localizar um objeto específico em um conjunto grande. A cada objeto do conjunto é dada uma chave. O número de chaves é sempre um poder de 2. Se houver 32 itens numa lista, por exemplo, eles podem ser numerados de 0 a 31 (binário 00000 a 11111). Se houver, digamos, apenas 29 itens, eles podem ser numerados de 0 a 28 (binário 00000 a 11100), com os números 29 a 31 (binário 11101, 11110, e 11111) como chaves dummy.

Para conduzir a busca, as chaves são listadas em forma de tabela. A posição do objeto desejado é comparada com o ponto médio da lista (que fica entre as duas chaves no centro da lista). Se a chave do objeto desejado for menor que o valor do ponto médio, então a primeira metade da lista é aceita e a segunda metade é rejeitada. If the key of the desired object is larger than the halfway point value, then the second half of the list is accepted and the first half is rejected. The process is repeated, each time selecting half of the list and rejecting the other half, until only one object remains. This is the desired object.

The following list shows an example of a binary search to choose the fifth object in a set of 13 objects. Keys are denoted X; the desired key is denoted by +. Dummy keys are denoted O.

XXXX+XXXXXXXXOOO (initial list)
XXXX+XXX (first half accepted)
+XXX (second half accepted)
+X (first half accepted)
+ (first half accepted)