Binarysearch unsortiertes Array
Hoffentlich kennt jemand die Antwort auf diese Java-Zertifizierungsfrage:
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);
}
Welche zwei Ergebnisse sind möglich? (Wähle zwei.)
A) 7 0
B) 7 1
C) 7 3
D) -1 0
E) -1 1
F) -1 3
Die einzig wahre Antwort ist E) -1 1, denn wenn Sie den Binärsuchalgorithmus durchspielen, ist dies die einzig mögliche Ausgabe. Aber sie wollen, dass ich zwei wähle ... Also muss die zweite B) 7 1 sein, weil die zweite binäre Suche im sortierten Array immer zurückkehrt1
.
Meine Frage ist also, warum ist B) 7 1 ein mögliches Ergebnis? Genauer gesagt: Wie ist es möglich, dass die erste binäre Suche im unsortierten Array 7 zurückgibt?
Danke im Voraus