Estamos com problema no while
package Busca;
public class BuscaBinaria {
public static void main(String[] args) {
Pessoa[] pessoas = new Pessoa[5];
//Vetor em ordem crescente
pessoas[0] = new Pessoa(1,"Baby Sauro");
pessoas[1] = new Pessoa(2, "Charlene Sauro");
pessoas[2] = new Pessoa(3, "Dino Sauro");
pessoas[3] = new Pessoa(4, "Fran Sauro");
pessoas[4] = new Pessoa(5, "Robert Sauro");
//onde o se encontra o indice desejado verificando se o numero 4
//encontra-se no vetor desejado
Pessoa pessoa = binario(pessoas, 4);
if (pessoa != null) {
System.out.println(pessoa.codigo+ " " + pessoa.nome);
}else {
System.out.println("Não Achou!");
}
}
public static Pessoa binario(Pessoa[] vetor, int codigoBinario) {
//variavel meio
int meio;
//variavel inicio e fim
int inicio, fim;
//variavel contendo o inicio de contagem do vetor
inicio = 0;
//o tamanho do vetor -1
fim = vetor.length-1;
//processamento onde menor igual a fim faz
while (inicio <= fim){
// para descobrir o meio do vetor, incio mais fim dividivo por 2
meio = (inicio + fim) /2;
//se o objeto pessoa no indice meio for igual pessoas que estou procurando devolvo o meio
if (Pessoa[] == pessoas)
return meio;
// se o elemento do meio for menor que pessoas procurada do meio para frente
else if (Pessoa[meio] < pessoas) inicio = meio + 1;
// se não elemento do meior for maior que peessoas procurada do meio para tras
else if (Pessoa[meio] > pessoas) fim = meio - 1;
}
return 0;
}