Binarysearch tridimensional
Espero que alguém saiba a resposta para esta questão de certificação Java:
public static void main(String[] args) {
String[] sa = {"d", "c", "a", "b" };
int x = Arrays.binarySearch(sa, "b");
Arrays.sort(sa);
int y = Arrays.binarySearch(sa, "b");
System.out.println(x + " " + y);
}
Quais dois resultados são possíveis? (Escolha dois.)
A) 7 0
B) 7 1
C) 7 3
D) -1 0
E) -1 1
F) -1 3
A única resposta verdadeira é E) -1 1, porque se você jogar através do algoritmo de busca binária, esta é a única saída possível. Mas eles querem que eu escolha dois ... Então o segundo tem que ser B) 7 1 então, porque o segundo binarySearch no array ordenado sempre retornará1
.
Então, minha pergunta é: por que B) 7 1 é um resultado possível? Mais específico: como é possível que o primeiro binarySearch na matriz não classificada retorne 7?
desde já, obrigado