二分探索
導入
その
用語 と定義
まず
方針
つぎに
- なら
以降 は全部 大 きすぎる - なら
以前 は全部 小 さすぎる
と
導出
1. 探索区間 をどう持 つか
このときの
です。
2. 中央 との比較 で何 が捨 てられるか
として を
まず なら、その
つぎに の
どちらの
3. なぜ必 ず終 わるのか
でない
したがって は
4. 計算量
よって
どこまで成 り立 つか
したがって、
つまり、
見分 け方
比較 の結果 だけで、ある範囲 をまとめて不可能 にできるなら、二分探索 を疑 います。配列 が整列 している、あるいは「単調 に真偽 が切 り替 わる」構造 があるなら、半分 を捨 てられる可能性 があります。順序 はあるが、比較 してもどちら側 を全部 捨 ててよいか言 えないなら、二分探索 ではなく別 の方法 を考 えます。
最終形
初期値 は です。中央 を取 ります。- なら
成功 です。 - なら にします。
- なら にします。
- になったら「
存在 しない」と結論 します。
したがって
であり、
一言 でいうと
中央 を見 るのは、中央 が特別 だからではなく、半分 を捨 てる根拠 を得 やすいからです。本体 は、「もし があるなら の中 にある」という不変条件 です。整列 という前提条件 を使 って候補集合 を半分 ずつ削 る、それが二分探索 です。