ソートせずに Arrays.binarySearch を使用しているときに得られる答えの背後にあるロジックが何であるかを知りたいです。
int d[]={6,-4,12,0,-10};
int x=12;
int y=Arrays.binarySearch(d,x);
System.out.println(y);
出力:2
このような稀なケースを取り上げるJavaのコンテストを準備しているので、この質問をしました。解決策があれば教えてください。
ソートせずに Arrays.binarySearch を使用しているときに得られる答えの背後にあるロジックが何であるかを知りたいです。
int d[]={6,-4,12,0,-10};
int x=12;
int y=Arrays.binarySearch(d,x);
System.out.println(y);
出力:2
このような稀なケースを取り上げるJavaのコンテストを準備しているので、この質問をしました。解決策があれば教えてください。
あなたは幸運。Java 実装では、正しい答えを保証するために配列をソートする必要があります。
この呼び出しを行う前に、配列を (sort(int[]) メソッドで) ソートする必要があります。ソートされていない場合、結果は未定義です。
あなたは何でも得ることができました。Arrays.binarySearchの javadoc を読む
この呼び出しを行う前に、配列を (sort(int[]) メソッドで) ソートする必要があります。ソートされていない場合、結果は未定義です。
今、javadocsはそれを述べています
この呼び出しを行う前に、配列を(sort(int[]) メソッドで) ソートする必要があります。ソートされていない場合、結果は未定義です。指定された値を持つ複数の要素が配列に含まれている場合、どれが見つかるかは保証されません。