アルゴリズムの勉強・二分探索の自力実装とライブラリ活用編

しろーぬなずな に投稿

二分探索(バイナリサーチ)は、あらかじめ昇順または降順にソート(整列)されたリストの中から、特定の値を高速に探し出すためのアルゴリズムである。

日常的な例でいうと、辞書で「こんぱす」という単語を調べるとき、最初のページから1ページずつめくる(線形探索)のではなく、まず真ん中あたりを開き、そこが「さ行」なら「もっと前だな」、「た行」なら「もっと後ろだな」と判断して探す範囲を狭めていく。この直感的な探し方こそが「二分探索」の正体である。

1. 二分探索の仕組み(例示)

例えば、次のように昇順にソートされた9個の要素を持つリストから、ターゲットとなる数値 23 を探すケースを考える。

リスト: [3, 8, 12, 17, 23, 29, 35, 42, 50] (要素数 $N = 9$)

プログラミング を購読