0

ソートせずに Arrays.binarySearch を使用しているときに得られる答えの背後にあるロジックが何であるかを知りたいです。

int d[]={6,-4,12,0,-10};
int x=12;
int y=Arrays.binarySearch(d,x);

   System.out.println(y);

出力:2

このような稀なケースを取り上げるJavaのコンテストを準備しているので、この質問をしました。解決策があれば教えてください。

4

4 に答える 4

4

あなたは幸運。Java 実装では、正しい答えを保証するために配列をソートする必要があります。

この呼び出しを行う前に、配列を (sort(int[]) メソッドで) ソートする必要があります。ソートされていない場合、結果は未定義です。

ソース

于 2013-11-03T18:43:52.300 に答える
0

あなたは何でも得ることができました。Arrays.binarySearchの javadoc を読む

この呼び出しを行う前に、配列を (sort(int[]) メソッドで) ソートする必要があります。ソートされていない場合、結果は未定義です。

于 2013-11-03T18:45:22.083 に答える
0

今、javadocsはそれを述べています

この呼び出しを行う前に、配列を(sort(int[]) メソッドで) ソートする必要があります。ソートされていない場合、結果は未定義です。指定された値を持つ複数の要素が配列に含まれている場合、どれが見つかるかは保証されません。

于 2013-11-03T18:45:39.717 に答える