public static void main(String[] args) {
// TODO code application logic here
int vet[] = {4, 10, 15, 22, 7, 50, 3};
int pos = Arrays.binarySearch(vet, 7);// ao escolher 7 ou o 3 invés de mostrar a posição correta está mostrando uma posição negativa
System.out.println("Encoteri o valor na posição " + pos);
}
Para usar a pesquisa binaria sua matriz deve estar ordenada.
2 curtidas
Obrigado! Sem isso, então sempre vai me mostrar alguns valores no índice correto e outros em índices inexistentes?
A pesquisa binaria parte do principio que o vetor sempre está ordenado, ela vai dividindo o vetor pela metade e analisando em qual parte está o valor procurado, se o seu vetor está fora de ordem ela não será capaz de achar os valores corretos.
Use um Arrays.sort(vet); antes da sua pesquisa para ordenar seu vetor para ela funcionar corretamente.
1 curtida
Entendi, muito obrigado!