読み方 : にぶんたんさく
二分探索 【binary search】 2分探索 / バイナリサーチ
解説 まず、データを降順(大きい順)あるいは昇順(小さい順)に並べ替え、探索したいデータが中央の要素より大きいか小さいかを調べる。これにより、データが全体の前半分にあるか後ろ半分にあるかを判定することができるため、存在しない側の半分は探索範囲から外すことができる。
半分になったデータ群の中央の要素と再び比較し、前半と後半のどちらにあるかを調べる。この操作を繰り返し行うことで、一回の操作ごとに探索範囲の大きさが半分になっていき、中央の要素が求めるデータに一致するか、探索範囲の要素数が一つになる(求めるデータは見つからなかったことが確定する)と探索は終了する。
値の大小は文字の索引順の前後関係などに適宜置き換えることにより、順序と比較手段を定義できればどのようなデータにも適用することができる。
n個のデータ群から平均でlog2n回の比較で探索を終えることができ、例えば1000個のデータを10回の比較で探索できる。原理は単純ながら高速なアルゴリズムである。ただし、要素があらかじめ整列済みである必要があるため、未整列のデータに適用するにはソートの分の計算時間も必要となる。
(2019.1.25更新)
「二分探索」の関連用語
他の用語辞典による「二分探索」の解説 (外部サイト)
資格試験などの「二分探索」の出題履歴
▼ 基本情報技術者試験
【令7修1 問6】 2分探索において,データの個数が4倍になると,最大探索回数はどうなるか。ここで,データの個数は十分に多いものとする。
【令6修7 問6】 昇順に整列されたn個のデータが配列に格納されている。探索したい値を2分探索法で探索するときの,およその比較回数を求める式はどれか。
【令5修12 問6】 2分探索において,データの個数が4倍になると,最大探索回数はどうなるか。ここで,データの個数は十分に多いものとする。
【令5修6 問6】 昇順に整列されたn個のデータが配列に格納されている。探索したい値を2分探索法で探索するときの,およその比較回数を求める式はどれか。
【令3修12 問5】 探索方法とその実行時間のオーダの適切な組合せはどれか。ここで,探索するデータの数をnとし,ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。
【令3修7 問9】 探索表の構成法を例とともに a〜c に示す。最も適した探索手法の組合せはどれか。ここで,探索表のコードの空欄は表の空きを示す。
【令2修12 問10】 顧客番号をキーとして顧客データを検索する場合,2分探索を使用するのが適しているものはどれか。
【平30修12 問6】 2分探索に関する記述のうち,適切なものはどれか。
【平29修7 問4】 探索方法とその実行時間のオーダの適切な組合せはどれか。ここで,探索するデータの数をnとし,ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。
【平29修7 問6】 昇順に整列済みの配列要素 A(1),A(2),...,A(n) から,A(m)=k となる配列要素A(m)の添字mを2分探索法によって見つける処理を図に示す。
【平29春 問7】 顧客番号をキーとして顧客データを検索する場合,2分探索を使用するのが適しているものはどれか。
【平28修6 問7】 昇順に整列されたn個のデータが配列に格納されている。探索したい値を2分探索法で探索するときの,およその比較回数を求める式はどれか。
【平28修1 問4】 探索方法とその実行時間のオーダの適切な組合せはどれか。ここで,探索するデータの数をnとし,ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。
【平27春 問6】 整列されたn個のデータの中から,求める要素を2分探索法で探索する。この処理の計算量のオーダを表す式はどれか。
【平26秋 問6】 2分探索に関する記述のうち,適切なものはどれか。
【平26修6 問6】 昇順に整列されたn個のデータが配列に格納されている。探索したい値を2分探索法で探索するときの,およその比較回数を求める式はどれか。
【平26修1 問7】 2,000個の相異なる要素が,キーの昇順に整列された表がある。外部から入力したキーによってこの表を2分探索して,該当するキーの要素を取り出す。
【平25修12 問6】 昇順に整列されたn個のデータが格納されている配列Aがある。流れ図は,2分探索法を用いて配列Aからデータを探し出す処理を表している。
【平24秋 問3】 探索方法とその実行時間のオーダの適切な組合せはどれか。ここで,探索するデータの数をnとし,ハッシュ値が衝突する(同じ値になる)確率は無視できるほど小さいものとする。
【平24秋 問6】 昇順に整列済みの配列要素 A(1),A(2),...,A(n) から,A(m)=k となる配列要素A(m)の添字mを2分探索法によって見つける処理を図に示す。
【平24修6 問6】 昇順に整列されたn個のデータが配列に格納されている。探索したい値を2分探索法で探索するときの,およその比較回数を求める式はどれか。
【平23修7 問7】 2分探索法に関する次の記述のうちで,適切なものはどれか。
【平23修1 問8】 昇順に整列されたn個のデータが格納されている配列Aがある。流れ図は,2分探索法を用いて配列Aからデータを探し出す処理を表している。
【平22修1 問6】 あらかじめ整列された1000人の電話番号から,目的の電話番号を2分探索法を用いて探索するとき,最大およそ何回の比較が必要になるか。
【平21春 問7】 昇順に整列されたn個のデータが配列に格納されている。探索したい値を2分探索法で探索するときの,およその比較回数を求める式はどれか。