Executando verificação de segurança...
12

Entendendo a Pesquisa Binária

Ao estudar mais a fundo sobre algoritmos e, consequentemente, lendo o livro Entendendo Algoritmos, tenho adquirido muito conhecimento e decidi compartilhar com o maior número de pessoas possível.

Hoje quero falar um pouco sobre a pesquisa binária. Para quem ainda não conhece esse conceito, vamos imaginar um problema simples: suponha que você precise localizar um registro em uma lista ordenada e o item que está procurando começa com a letra K (não que eu esteja me referindo ao meu próprio nome).

Você pode começar a busca pela primeira página e seguir uma a uma até encontrar os registros com a letra K. Mas, sendo mais estratégico, poderia pular diretamente para o meio da lista — afinal, numa lista ordenada, a letra K está próxima do meio. Isso reduziria significativamente o tempo necessário para encontrar o item.

Agora pense em outro cenário: você vai fazer login em uma rede social. O sistema precisa localizar seu usuário no banco de dados. Digamos que seu nome comece com a letra Z. Seria ineficiente iniciar a busca pela letra A, certo? Faz mais sentido começar do final ou do meio da lista.

Esses são exemplos clássicos de problemas de busca, e para otimizar essas situações utilizamos a pesquisa binária.

O que é Pesquisa Binária?

A pesquisa binária é um algoritmo de busca eficiente, que requer como entrada uma lista ordenada. Ela retorna a posição do item buscado, caso ele exista na lista. Caso contrário, retorna None.

Um Exemplo Prático

Imagine que estou pensando em um número entre 1 e 100 e desafio você a adivinhar qual é. Tente agora mesmo fazer um chute!

Antes de revelar, pense que o objetivo é adivinhar o número com o menor número de tentativas possível. Agora, imagine que você começa assim: 1, 2, 3, 4... Veja o que acontece:

Pesquisa Simples

Essa abordagem se chama pesquisa simples. Embora funcione, pode levar até 100 tentativas no pior caso — o que não é nada eficiente.

Agora veja uma forma mais inteligente e assertiva de realizar essa busca:

Primeira tentativa binária

Mesmo com a resposta sendo "muito baixo", você eliminou 50 números de uma só vez, apenas por ter começado pela metade da lista (número 50).

Na próxima tentativa, você escolhe a metade do intervalo restante: 75.

Segunda tentativa binária

A resposta agora é "muito alto". Mais uma vez, você eliminou metade dos números restantes.

Na sequência, você tenta 63 (meio entre 51 e 74)... ainda é alto. Depois tenta 57... e acerta o número!

Acerto

O Poder da Pesquisa Binária

Parabéns! Você acabou de aprender como funciona a pesquisa binária. Percebe como ela não é nenhum bicho de sete cabeças?

Enquanto a pesquisa simples poderia levar até 57 tentativas para encontrar o número 57, com a pesquisa binária conseguimos isso em apenas 4 tentativas.

Veja a comparação:

Pesquisa simples
VS
Pesquisa binária

A diferença é gritante.

Pode parecer inacreditável que alguém escolha a abordagem simples, mas acredite: já fiz essa brincadeira com amigos e familiares, e a maioria começou do 1 e foi subindo.

Considerações Finais

A pesquisa binária não é uma solução mágica para todos os problemas de busca. Como vimos, ela exige uma lista ordenada para funcionar corretamente — e nem sempre isso é possível no mundo real, especialmente ao lidar com sistemas complexos ou dados não estruturados.

Ainda assim, em muitos cenários onde a velocidade de resposta é essencial, algoritmos de pesquisa binária podem ser salvadores de desempenho.

Carregando publicação patrocinada...
3

Muito show haha!

Busca binária (Binary Search) é um daqueles tópicos que são bem intuitivos quando você entende a regra!

Mas um detalhe importante, só funciona se a sua entrada estiver ordenada!
No seu exemplo de 1 a 100 se a ordem fosse aleatória Ex: 9,7,100,99,55,66,... o jeito seria fazer um busca linear mesmo, ou seja verificar cada um dos números na lista

Claro você poderia ordenar a lista primeiro e depois fazer a busca binária, porém em complexidade de tempo (o famoso BigO) faria com que fosse menos performático do que só percorrer a lista procurando um a um!

Mas é isso boa sorte nos estudos e continue compartilhando os conhecimentos sem dúvida a melhor maneira de aprender é ensinar!

1
1
1
0