A busca binária é como encontrar um número em um livro, mas de uma maneira muito inteligente! 📚 Imagine que você tem um livro onde os números estão em ordem, da menor página para a maior. Agora, você quer encontrar o número 42. O que você faz?
Primeiro, você abre o livro na metade (página 50, por exemplo, se o livro tem 100 páginas). 📖
Você olha para o número na página onde você abriu o livro.
Se o número for menor que 42, você sabe que o 42 só pode estar na metade das páginas maiores. Então, você fecha a primeira metade do livro.
Se o número for maior que 42, você sabe que o 42 só pode estar na metade das páginas menores. Então, você fecha a segunda metade do livro.
Agora, você repete o processo a partir do ponto 1, mas agora em apenas metade do livro.
Você continua fazendo isso até encontrar o número 42 ou perceber que ele não está no livro.
Em Java, podemos fazer a busca binária em um vetor da mesma forma!
Aqui está um exemplo de código:
public class BuscaBinaria {
public static int buscaBinaria(int[] vetor, int alvo) {
int esquerda = 0;
int direita = vetor.length - 1;
while (esquerda <= direita) {
int meio = (esquerda + direita) / 2;
if (vetor[meio] == alvo) {
return meio; // Encontrou o número!
} else if (vetor[meio] < alvo) {
esquerda = meio + 1; // Procurar na metade direita
} else {
direita = meio - 1; // Procurar na metade esquerda
}
}
return -1; // O número não está no vetor
}
public static void main(String[] args) {
int[] vetor = {1, 4, 8, 15, 42, 50, 67, 99};
int alvo = 42;
int resultado = buscaBinaria(vetor, alvo);
if (resultado != -1) {
System.out.println("Encontrou o número " + alvo + " na posição " + resultado);
} else {
System.out.println("Número " + alvo + " não encontrado no vetor.");
}
}
}
Neste código, a função buscaBinaria recebe um vetor ordenado e um número alvo. Ela usa a busca binária para encontrar o número e retorna a posição onde o número foi encontrado ou -1 se não foi encontrado.
A busca binária é uma maneira muito eficiente de encontrar itens em listas ordenadas, como vetores, porque corta o espaço de busca pela metade a cada passo. É como uma caça ao tesouro eficaz! 🏴☠️🗺️
LinkedIn: https://www.linkedin.com/in/antonio-rodrigo-wanderley-serra/
GitHub: https://github.com/antoniorws
Top comments (0)