MAPA – ADSIS – ESTRUTURA DE DADOS II – 52_2025

A forma mais eficiente de efetuar pesquisa em um arranjo sem a necessidade de memórias auxiliares é a busca binária. A estratégia consiste em comparar a chave de busca (dado que estamos procurando) ao elemento do meio do arranjo (vetor). Se forem iguais, a busca terá terminado com sucesso, e o algoritmo retornará a respectiva posição na qual o elemento foi encontrado. Caso contrário, o vetor será divido em duas metades, e a pesquisa será repetida na metade “inferior”, se a chave de busca for menor do que o valor do meio do arranjo, ou na parte “superior”, se a chave de busca for maior. A cada iteração, a busca binária reduz a quantidade de possíveis candidatos pela metade. Isso faz com que a velocidade de busca seja extremamente rápida, já que, em tese, o algoritmo implementa uma heurística que elimina a necessidade de investigar porções do vetor cuja busca seria infrutífera. Observe o código-fonte a seguir que implementa a busca binária.

Linha Código

01

02

03

04

05

06

07

08

09

10

11

12

13

int buscaBinaria(int arranjo

, int i, int f, int chave)

{

if (f >= i)

{

int meio = i + (f – i)/2;

if (arranjo

meio

== chave)

return meio;

if (arranjo

meio

> chave)

return buscaBinaria(arranjo, i, meio-1, chave);

return buscaBinaria(arranjo, meio+1, f, chave);

}

return -1;

}