Junior
Como funciona o algoritmo de busca binária?
sobes.tech IA
Resposta da IA
A pesquisa binária funciona analisando um array ordenado, dividindo sucessivamente o intervalo de pesquisa ao meio.
- Inicialização: Define-se a fronteira esquerda e direita do intervalo de pesquisa (geralmente o início e o fim do array).
- Comparação: Calcula-se o índice do meio do intervalo. O valor nesse índice é comparado com o elemento procurado.
- Redução do intervalo:
- Se o valor no meio coincide com o procurado, o elemento foi encontrado.
- Se o valor no meio for maior que o procurado, a busca continua na metade esquerda do intervalo. A fronteira direita move-se para meio - 1.
- Se o valor no meio for menor que o procurado, a busca continua na metade direita do intervalo. A fronteira esquerda move-se para meio + 1.
- Repetição: Os passos 2 e 3 são repetidos até que o elemento seja encontrado ou o intervalo de pesquisa fique vazio.
A complexidade do algoritmo é O(log n), o que é muito mais eficiente do que a busca linear para arrays grandes.
Exemplo de implementação em Python:
def binary_search(arr, target):
"""
Implementação de busca binária.
Recebe um array ordenado e o valor procurado.
Retorna o índice do elemento ou -1 se não for encontrado.
"""
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2 # Calcula o índice do meio
mid_val = arr[mid] # Obtém o valor no meio
if mid_val == target:
return mid # Elemento encontrado
elif mid_val < target:
left = mid + 1 # Valor procurado é maior, busca na direita
else: # mid_val > target
right = mid - 1 # Valor procurado é menor, busca na esquerda
return -1 # Elemento não encontrado