A busca binária é uma forma rápida de encontrar um valor alvo em uma lista ordenada. Você verifica o item do meio, descarta metade dos valores restantes e repete. Se a lista não estiver ordenada, essa lógica não funciona.
Em uma lista em ordem crescente, a regra é simples: se o valor do meio for menor que o alvo, procure à direita; se for maior, procure à esquerda. Como o intervalo continua diminuindo pela metade, a busca binária roda em tempo .
Como a busca binária funciona em uma lista ordenada
Use esta lista ordenada:
Suponha que o alvo seja .
Comece com o intervalo completo. O valor do meio é . Como , tudo à esquerda de pode ser descartado, então a busca continua em
Agora o valor do meio é . Como , tudo à direita de pode ser descartado, então o intervalo passa a ser
Agora o valor do meio é , então a busca para. A ideia importante não é só que o alvo foi encontrado. Em duas comparações, o intervalo de candidatos caiu de valores para .
Por que a busca binária é
Cada comparação elimina cerca de metade dos candidatos restantes. Depois de um passo, restam cerca de itens. Depois de dois passos, restam cerca de . Depois de passos, o tamanho restante é aproximadamente
A busca termina quando essa quantidade é aproximadamente , então o número de passos satisfaz
Aplicando nos dois lados, obtemos
É por isso que a busca binária escala bem. Uma busca linear pode precisar de até verificações, mas a busca binária só precisa de verificações suficientes para continuar dividindo o intervalo pela metade.
Exemplo de código de busca binária
Aqui está uma versão iterativa padrão em Python:
Precisa de ajuda com um problema?
Envie sua pergunta e receba uma solução verificada, passo a passo, em segundos.
Abrir GPAI Solver →