【Ruby3.x】Array::bsearch()メソッドの使い方
bsearchメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
bsearchメソッドは、配列内の要素を二分探索アルゴリズムで効率的に検索するメソッドです。このメソッドは、配列がソートされていることを前提とし、特定の条件に合致する要素を高速に探し出す際に利用されます。
bsearchメソッドはブロックを受け取り、そのブロックの評価結果に基づいて探索範囲を絞り込みます。主に二つのモードがあります。一つは、ブロックがtrueまたはfalseを返す場合です。このモードでは、条件を満たす任意の要素を検索し、trueを返した要素を返します。
もう一つは、ブロックが-1、0、1といった比較結果を示す数値を返す場合です。このモードでは、条件を満たす最小の要素を特定するために使用されます。例えば、特定の数値以上の最小の要素を見つける際に有効です。
検索が成功し要素が見つかると、その要素を返却します。いずれのモードでも、条件を満たす要素が見つからなかった場合はnilを返します。このメソッドは、ソート済みのデータから効率的に情報を抽出したい場合に特に役立ちます。
構文(syntax)
1[10, 20, 30, 40, 50].bsearch { |element| element <=> 30 }
引数(parameters)
引数なし
引数はありません
戻り値(return)
Object | nil
bsearchメソッドは、ブロックの評価結果が真となる最初の要素を返します。該当する要素が見つからなかった場合は nil を返します。