このバイナリ検索で何が問題なのかわかりました。コメントアウトされた行があり、これまで必要だったとは思っていないので、私が考えることができるのはその行を削除することだけです。それ以外に、私は何かが欠けていると思うことはできません - 間違っていることが本当に明白なものがありますか?バイナリ検索でエラーが発生しましたJava
public boolean search(int val) {
int low = 0;
int high = size-1;
int middle = -1;
boolean found = false;
while (!found && low < high) {
middle = low + (high-low)/2;
if (a[middle] == val)
found = true;
else if (a[middle] < val)
low = middle + 1;
else // (a[middle] > val)
high = middle - 1;
}
return found;
}
最終的な 'else'には'!(a [middle] == val) 'と'!(a [middle]
OldCurmudgeon
あなた自身で問題を見つけることができます。配列 '[1,2]'を入れて '2'を探します。 – OldCurmudgeon