Busca Binária com JAVA
- #Java
- #POO
Olá devs! Tudo bem?
Nesses últimos dias andei trabalhando em um projeto de busca binária, uma das técnicas mais importantes na introdução de algoritmos na área de programação. Entretanto, quando procurei sobre o assunto percebi que muitos desenvolvedores sequer sabem do que se trata, alguns até relataram como um assunto que fora pedido em entrevistas de emprego.
Por esse motivo decidi compartilhar com vocês esse projeto e falar um pouco mais sobre o assunto!
Primeiramente, o que seria a Busca Binária?
Em resumo, ela consiste em dividir o vetor e analisar se o dado requerido está antes ou depois da metade encontrada na divisão - se estiver antes, o programa descarta tudo que estiver depois do 'meio'; caso contrário, o programa descarta tudo que estiver antes. Isto é feito várias vezes até que o item desejado seja encontrado.
Este paradigma de divisão e conquista auxilia na busca de elementos de um vetor, deixando o programa (que vai implementá-lo) mais rápido em relação à busca linear - que iria analisar cada elemento do vetor, um a um até encontrar o item (que no pior dos casos estaria como o último item de uma imensa lista).
De que forma foi desenvolvida?
Este foi desenvolvido a partir da linguagem de programação Java. Utilizei a IntelliJ como o editor desse código. Este algoritmo visa facilitar a busca de um item específico para um grande número de elementos contidos no vetor. No código foram usados poucos dados (82 Strings contidos num vetor) para testes e desenvolvimento, entretanto o programa é adaptado para conseguir aplicar a técnica sem depender do tamanho do vetor. Então caso precise, fique à vontade para utilizar o código e adicionar quantas Strings você achar necessárias, o programa irá funcionar. Nota-se que os nomes (Strings) colocados no vetor foram de forma desordenada, optei por esse embaralhamento (mesmo que o algoritmo de busca binária necessite de uma lista ordenada) para que eu pudesse adaptar o meu programa a ordenar os itens contidos no vetor através de métodos criados na minha classe.
Para aqueles que quiserem dar uma olhada no código desenvolvido, deixarei aqui abaixo o link do meu repositório presente no GitHub; deixarei também o link que leva ao meu usuário do LinkedIn, caso queiram entrar em contato ou fazer conexões. 😊
🤖 Repositório do projeto: https://github.com/KirinRyu/BuscaBinaria-Java
👨💻 LinkedIn: https://www.linkedin.com/in/daniel-satoy/