なぜこれが起こっているのか誰でも説明できますか?すなわち。7 番目の配列に 175 が存在する場合でも、array.binarysearch は負の値を返していますか?
この画像を見てください:
なぜこれが起こっているのか誰でも説明できますか?すなわち。7 番目の配列に 175 が存在する場合でも、array.binarysearch は負の値を返していますか?
この画像を見てください:
事前に配列をソートしましたか?BinarySearch
配列がソートされていることを期待します。そうしないと、誤った結果が返される可能性があります。
>= 0
また、ではなくをチェックする必要があり> 0
ます。要素はインデックス 0 に存在できます。
図から、配列は 220 要素であり、最初の 7 つだけを表示します。220 要素すべてを並べ替える必要があります。そうしないと、BinarySearch が失敗します。
たとえば、最初のnum
要素のみを使用する場合は、BinarySearch(0, num, 175)
検索しているオブジェクトが、配列内のオブジェクトと同じタイプであることを確認してください。汎用バージョンを使用すると役立ちます。
Array.BinarySearch(..)
タイプ固有のバージョンを使用して、配列がソートされている場合に入力パラメーターが正しいことを確認できます。
int[] array = new int[] { 1, 3, 4, 5, 175, 200, 300, 400 };
int index = Array.BinarySearch<int>(array, 175);
入力配列または検索パラメーターが int 型でない場合、コンパイル エラーが発生します。