Busca binaria

2 respostas
java
George_Luis1

Boa noite, gostaria de que alguém olhasse meu código e me falasse o que está errado, pois, estou fazendo busca binaria, mas só aparece -1. Desde já agradeço pela atenção!!!

public class binaria {

static int buscaBin(int [] vetor, int comp){

int fim = vetor.length -1;

int ini = 0;

while(ini  <= fim){

int meio = (fim + ini)/2;

if(vetor[meio] < comp) ini = meio + 1;

else

if(vetor[meio] > comp)fim = meio -1;

else return(meio);

}

return (-1);

}

}

public class teste {
public static void main(String[] args) {
	// TODO Auto-generated method stub
	
	int vet [] = {1,5,6,9,3,35,48,99,54};
	
	System.out.println(binaria.buscaBin(vet, 6));

}

}

2 Respostas

M

Para que uma busca binária funcione vc precisa passar o vetor ordenado. Como seu vetor não está ordenado, sugiro que o ordene e execute o código novamente. Aparentemente seu código está ok, mas estou vendo o post do celular então fica um pouco difícil analisar.

George_Luis1

Obrigado!!!

Criado 8 de novembro de 2017
Ultima resposta 10 de nov. de 2017
Respostas 2
Participantes 2