バイナリー‐サーチ【binary search】
読み方:ばいなりーさーち
⇒二分探索
にぶん‐たんさく【二分探索】
読み方:にぶんたんさく
《binary search》データ検索の手法の一。ソートされたデータ列から目的とするデータを検索する際、まずデータ列の中央の値と大小比較をし、目的とするデータがどちらにあるかを判断する。この作業を、目的のデータがあるとされた半分のデータ列に対して繰り返し行うことにより、目的とするデータを検索する。二分検索。バイナリーサーチ。
にぶん‐けんさく【二分検索】
読み方:にぶんけんさく
《binary search》⇒二分探索
2分探索法
別名:バイナリサーチ
【英】binary search
2分探索法とは、検索対象がソートされている場合に適用できる高速な検索手法のことである。
2分探索法は、具体的には次のようなアルゴリズムで検索を行う。まず、検索の開始は、真ん中に位置するデータと比べる。一致すればそれで終わりである。小さければ目的のデータは前半にあり、大きければ後半にある。これをデータが無くなるまで繰り返す。
この手法の胆は、検索範囲を2分割することで、検索対象が一気に絞り込まれるところにある。1000個のデータに対しては多くても10回程度の比較により結果が得られる。一般にN個のデータから検索する場合にはlog2N回のオーダーの比較で目的とするデータが得られる。
なお、この手法はデータが整列していることが前提のため、データの変更が多い状況では、その準備のためのソートにかかる時間により、かえって全体の効率が落ちる場合がある。
二分探索
(binary search から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/05/24 16:42 UTC 版)
クラス | 探索アルゴリズム |
---|---|
データ構造 | 配列 |
最悪計算時間 | ![]() 二分探索(英: binary search)もしくはバイナリサーチとは、計算機科学において整列配列の中から目標の値の位置を見つけ出す探索アルゴリズム[1][2]。このアルゴリズムでは、探索目標と、配列の中央に位置する要素とをまず比較する。値が等しくない場合、目標が存在する可能性がない側の半分の部分配列を除外し、残りの半分について中央要素との比較を再び行う。この手続きを目標値が見つかるまで繰り返す。配列が空になって終了したなら、元の配列に目標値が存在しなかったということである。 二分探索は対数時間で動作するアルゴリズムであり、最悪のケースにおいて比較演算を function binary_search(A, n, T) is L := 0 R := n − 1 while L ≤ R do m := L + floor((R - L) / 2) if A[m] < T then L := m + 1 else if A[m] > T then R := m − 1 else: return m return unsuccessful 上記の手続きは完全一致の判定のみを行って目標値の位置を見つけるものである。しかし、二分探索は整列配列を対象としているため、近似一致の判定を行うように拡張することは容易である。たとえば、与えられた値に対して、順位(より小さい要素の数)、直前要素(次に値が小さい要素)、直後要素(次に値が大きい要素)、最も近い要素を求めるなどである。2つの値について順位を求めることで、それらの間にある要素数を求める範囲クエリも実行可能である[8]。
外部リンク |
- binary searchのページへのリンク