int []配列のbinarySearchメソッドを使用して特定のint値のオフセットを検索していますが、負の数です。Java配列のバイナリ検索 - 負の出力で、ソートしたくない場合
他の質問では、最初に配列を並べ替えることをお勧めしますが、配列を保持する必要があるため、これを実行したくありません。私はそれが奇妙な、これはいくつかのケースで動作し、他の人に、他人の場合には、私はint型の値が配列であるを保証することができないことがわかり
System.out.println("Index of last point: "+validFlag+" "+Arrays.binarySearch(validFlags,validFlag));
! 提案?ここで
は、プログラムからいくつかのコンソール出力です:
は、Arrays.sort()メソッドを使用してPossible flags: 26317584
Current flag: 6
Index of last point: 6 -7
Um、ソートされていない配列に対してバイナリ検索は使用できません。ソートしたくない場合は、要素を1つずつチェックする必要があります。 – TomekK
は、動作しないサンプル値と完全なコードを提供します。 –
バイナリー検索は、最初に配列の中央値に行き、探している番号がこの数よりも多いか小さいかをいいます。検索パラメータが中央値より大きい場合は、配列の右半分に同じことを行います。アルゴリズムがソートされた配列を必要とするため、-1が得られるのは、それが見つからないためです。ソートされていない配列を検索する唯一の方法は、O(N)時間かかるので、forループまたは '.contains()'メソッドを探すだけです。 –