平成23年度 秋期 応用情報技術者試験 午前 問8
データが昇順にソートされた配列X[i](i=0, 1, …, n-1)を2分探索する。流れ図のaに入るものとして,適切なものはどれか。ここで,流れ図の中の割り算は小数点以下を切り捨てるものとする。

キーボード:1〜4 で解答 → 次の問題 ← 前の問題
正解と解説を見る
解答する前に解説を開いたので、この問題は「見て解いた」として記録します(正解数には入りません)。
正解:イ
2分探索では,探索範囲 left〜right に要素が残っている間,探索を続けます。left=right のときも,探索範囲には要素がちょうど1個残っているので,その要素を調べる必要があります。left>right となったときに初めて探索範囲が空になり,探索値が見つからなかったことになります。
したがって,繰返しの条件は left ≦ right です。
例:n=1 のとき,最初から left=right=0 です。条件が left<right だと一度もループに入らず,X[0] が探索値と等しくても見つけられません。
-
ア: left < right
誤り。left=right となった時点でループを抜けるため,最後に残った1個の要素を調べられません。 -
イ: left ≦ right
正しい。探索範囲に要素が1個以上残っている間だけ繰り返すので,全ての要素を漏れなく調べられます。 -
ウ: left+1 < right
誤り。探索範囲の要素が2個以下になった時点でループを抜けるため,調べ残しが生じます。 -
エ: left+1 ≦ right
誤り。left<right と同じ条件で,残り1個の要素を調べられません。
答え
イ: left ≦ right
出典:平成23年度 秋期 応用情報技術者試験 午前 問8