ちょっと、私はバイナリ検索の比較数を見つけたいと思っています。私はこの方法で比較回数を数えました。配列には数値が含まれていますが、numsearchが見つからないため、常に-1を返します。 これは私の方法です..カウントは、比較の数を参照してください。バイナリ検索方法のループ数
public static int BinarySearch (int n, Integer[] ran) {
int low = 0;
int high = ran.length-1;
int count = 0;
int middle;
while (low<=high) {
count++;
middle = (high - low)/2;
if (ran[middle] == n) {
return count;
}
else if (ran[middle] > n) {
high = middle - 1;
}
else {
low = middle + 1;
}
}
return -1;
}
私はそれを試みたが、それはどちらか返し2または私はそれを手動で停止する – Dom
コード自体を有するループで継続のいずれか本当に正しくありません。おそらく、あなたの実装を見直すべきでしょう。私は 'middle =(high-low)/ 2;をmiddle =(high + low)/ 2;に変更します。 – john16384
あなたに仲間に感謝します、私はコードを変更しました。しかし、それは私に5または4のどちらかを与えます – Dom