Módulo 10 - Busca: achar rápido
Busca binária: cortar pela metade
9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 08/07/2026
O que você vai aprender
- Entender a busca binária: olhar o meio e descartar metade a cada passo.
- Acompanhar uma busca binária passo a passo numa lista ordenada.
- Relacionar a busca binária com o jogo de adivinhar um número.
- Reconhecer que ela exige dados ordenados para funcionar.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Busca binária: cortar pela metade.
Os objetivos desta aula. Entender a busca binária: olhar o meio e descartar metade a cada passo. Acompanhar uma busca binária passo a passo numa lista ordenada. Relacionar a busca binária com o jogo de adivinhar um número. Reconhecer que ela exige dados ordenados para funcionar.
Veja o essencial, parte por parte.
O jogo de adivinhar o número. A busca binária só funciona em dados ORDENADOS.
A busca binária passo a passo. Vamos seguir a busca pelo 23 na lista ordenada [4, 8, 15, 16, 23, 42], com posições de 0 a 5.
A condição inegociável e os cuidados. A busca binária tem uma exigência que não se negocia: os dados precisam estar ordenados.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
O jogo de adivinhar o número
Você provavelmente já jogou a versão humana da busca binária. Alguém pensa num número de 1 a 100 e você tenta adivinhar; a cada palpite, a pessoa diz se o número é maior ou menor. O jeito esperto de jogar não é chutar 1, 2, 3; é chutar 50. Se a pessoa diz maior, você descarta de 1 a 50 e sabe que está entre 51 e 100. Chuta 75, e assim por diante, sempre no meio do que sobrou. Com essa estratégia, você acerta qualquer número de 1 a 100 em no máximo sete tentativas, porque cada palpite corta as possibilidades pela metade. A busca binária numa lista ordenada é exatamente isso: o item do meio é o seu palpite, e a comparação com o alvo diz para qual metade ir.
lista <- [4, 8, 15, 16, 23, 42] // ORDENADA
alvo <- 23
inicio <- 0
fim <- 5
enquanto inicio <= fim faça
meio <- (inicio + fim) / 2 // parte inteira
se lista[meio] = alvo então
escreva("Achei na posição ", meio)
interrompa
senão se lista[meio] < alvo então
inicio <- meio + 1 // descarta a metade de baixo
senão
fim <- meio - 1 // descarta a metade de cima
fim
fimA faixa (início, fim) encolhe pela metade a cada passo, movendo o início ou o fim conforme a comparação com o meio.
A busca binária passo a passo
Vamos seguir a busca pelo 23 na lista ordenada [4, 8, 15, 16, 23, 42], com posições de 0 a 5. A faixa começa inteira: início 0, fim 5, meio na posição 2 (o valor 15). Comparo: 15 é menor que 23, então o alvo está à direita; movo o início para depois do meio, virando início 3, fim 5. Nova faixa, novo meio na posição 4 (o valor 23). Comparo: 23 é igual ao alvo, achei, na posição 4. Foram duas comparações para achar um item numa lista de seis. Numa busca linear, o 23 estaria na quinta posição e custaria cinco comparações. A vantagem parece pequena aqui, mas ela explode com o tamanho: é isso que a próxima aula revela em números.
🎮 Jogo da aula
Siga a busca binária
Na lista ordenada [2, 5, 8, 12, 20], a busca binária procura o 5. Qual item ela examina PRIMEIRO?
lista <- [2, 5, 8, 12, 20] // posições 0 a 4
// busca binária pelo 5
// primeiro passo: meio = (0 + 4) / 2 = 2A condição inegociável e os cuidados
A busca binária tem uma exigência que não se negocia: os dados precisam estar ordenados. Aplicada a uma lista embaralhada, ela dá respostas erradas, porque a comparação com o meio deixa de indicar de que lado está o alvo. Esse é o preço da velocidade: você troca a universalidade da busca linear pela exigência da ordem. Além disso, escrever a busca binária pede cuidado com os detalhes, mover o início para meio mais um, o fim para meio menos um, e a condição de parada do laço, porque um deslize de uma unidade vira laço infinito ou item não encontrado por engano. Vale escrevê-la com calma, testar as pontas (o primeiro item, o último, um que não existe) e conferir com o teste de mesa. Nas linguagens reais, quase sempre existe uma busca binária pronta e testada, mas entender como ela funciona por dentro é o que faz você saber quando pode confiar nela.
Teste rápido
Qual é a condição indispensável para a busca binária funcionar corretamente?
Perguntas frequentes
- Como funciona a busca binária?
- Numa lista ordenada, ela olha o item do meio da faixa que sobrou. Se o alvo é igual, achou. Se é menor, descarta a metade de cima; se é maior, descarta a de baixo. Repete no que sobrou, cortando o problema ao meio a cada passo, até achar ou não sobrar nada. É o jogo de adivinhar número aplicado a dados.
- Por que a busca binária é tão rápida?
- Porque cada passo elimina metade dos candidatos, não um só. Numa lista de um milhão, o primeiro passo descarta quinhentos mil, o segundo duzentos e cinquenta mil, e assim por diante. Em cerca de vinte passos não sobra nada para procurar. A próxima aula mostra esse abismo de esforço em números.
- A busca binária funciona em qualquer lista?
- Não: só em dados ordenados. Essa é a diferença crucial para a busca linear. Numa lista embaralhada, a comparação com o item do meio não diz de que lado está o alvo, e a busca binária dá respostas erradas. Ordem é o requisito inegociável dela.
- Por que a busca binária é fácil de errar ao escrever?
- Por causa dos detalhes de índice: mover o início para meio mais um, o fim para meio menos um, e acertar a condição de parada. Um deslize de uma unidade vira laço infinito ou faz perder o item. Vale escrever com calma, testar as pontas e conferir no teste de mesa. Nas linguagens reais costuma haver uma versão pronta.
- O que é a faixa na busca binária?
- É a parte da lista ainda sob análise, marcada por um início e um fim. A busca binária examina o meio dessa faixa e, conforme a comparação, move o início ou o fim para descartar metade. A faixa vai encolhendo até conter só o item procurado ou ficar vazia (item ausente).
- Vale a pena ordenar só para poder usar busca binária?
- Depende de quantas buscas você fará. Ordenar custa trabalho, então para poucas buscas a linear resolve. Mas se você vai consultar a mesma lista muitas vezes, ordenar uma vez e usar busca binária em todas as consultas compensa de sobra. É a lógica de investir um esforço inicial para ganhar velocidade repetida.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.