昇順に整列済の配列要素A(1)、A(2)、…、A( n ) から、A(m) = kとなる配列要素A(m)の添字mを2分探索法によって見つける処理を図に示す。終了時点でm = 0の場合は、A(m) = kとなる要素は存在しない。図中のaに入る式はどれか。ここで、“/”は、小数点以下を切り捨てる除算を表す。
ア (x+y) → m
イ (x+y)/2 → m
ウ (x-y)/2 → m
エ (y-x)/2 → m
2分探索は、中央値と探索するデータを比較して、その探索範囲を狭めていくものである。
流れ図を見ると、比較すべき中央値の値を求める式を入れればいいことが分かる。
正解はイである。
分かりにくい場合は、実際に簡単な数字を入れて追ってみるといい。
さらに、この流れ図そのものを自分で書けるようにしておけば迷うことはなくなる。
