中央値となり、検索する値とマッチすることになる。高速に検索を行うことが出来る。あれば、約10倍の処理時間で済む。合計の処理時間はかえって増大する。毎回線形探索するよりもトータルで高速になる。データの挿入・削除と検索が同時に行われるような場合は、ソート済み配列を二分探索するよりも速度が速くなることがある。用意されているので、こちらも参照しておいて欲しい。下記は、二分探索を用いて、要素が範囲に含まれるかどうかを判定する関数の実装例だ。検索範囲を引数にとり、中央値と比べ、自分自身を再帰的にコールしている。再帰コールを1回行う度に、検索範囲は半分になる。val);}下記は、要素があるかどうかだけでなく、存在する場合は、それへのポインタを返す関数の実装例だ。ようにデータに重複があると、どれかへのポインタを返すので、場合によっては不都合が起こる。含まれるかどうかを判定してくれる。ランダムアクセス可能なイテレータを指定することが出来る。大きい最初の値へのイテレータを返す。