私はJavaの初心者で、配列の使い方を学んでいます。Array の二分探索法を使用すると、エントリが見つからない場合に負の数が返されることを理解しています。ただし、次のコードでは、9、10、および 11 に対して負の数が返されます。
誰かが私が間違っていることを指摘するのを助けることができるかどうか疑問に思っていますか? ありがとう!
String [] oneToSixteen = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16"};
System.out.println("Searching for 7: "+ Arrays.binarySearch(oneToSixteen, "7"));
System.out.println("Searching for 8: "+ Arrays.binarySearch(oneToSixteen, "8"));
System.out.println("Searching for 9: "+ Arrays.binarySearch(oneToSixteen, "9"));
System.out.println("Searching for 10: "+ Arrays.binarySearch(oneToSixteen, "10"));
System.out.println("Searching for 11: "+ Arrays.binarySearch(oneToSixteen, "11"));
私が得る出力は次のとおりです。
Searching for 7: 6
Searching for 8: 7
Searching for 9: -17
Searching for 10: -2
Searching for 11: -2
どんな助けでも大歓迎です。