Qual o erro estou cometendo aqui?

4 respostas
G
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);
}

4 Respostas

lucashpmelo

Para usar a pesquisa binaria sua matriz deve estar ordenada.

G

Obrigado! Sem isso, então sempre vai me mostrar alguns valores no índice correto e outros em índices inexistentes?

lucashpmelo

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.

G

Entendi, muito obrigado!

Criado 30 de agosto de 2022
Ultima resposta 30 de ago. de 2022
Respostas 4
Participantes 2