Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】Array::bsearch_index()メソッドの使い方

bsearch_indexメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

bsearch_indexメソッドは、配列(Array)から指定された条件に合致する要素のインデックスを効率的に探索するメソッドです。このメソッドは、呼び出し元の配列に対して二分探索(バイナリサーチ)を実行し、条件を満たす要素が見つかった場合にその要素のインデックスを整数で返します。条件に合致する要素が見つからなかった場合はnilを返します。

bsearch_indexメソッドには主に二つの探索モードがあります。一つは「find-any」モードで、ブロックの評価結果が真となった最初の要素のインデックスを返します。このモードでは配列がソートされている必要はありませんが、二分探索の効率を最大限に引き出すためには、ブロックの条件が単調であることが望ましいです。もう一つは「find-minimum」モードで、ブロックに渡された値が検索条件を満たすかどうかを真偽値で返すように記述します。このモードは配列がソートされていることを前提とし、条件を満たす最初の要素のインデックスを高速に特定します。

大量のデータを扱う配列の中から、特定の条件に合致する要素の場所を素早く見つけたい場合に非常に役立ちます。特に、ソート済みの配列に対してfind-minimumモードを用いることで、従来の線形探索と比較して大幅に探索時間を短縮し、システム全体のパフォーマンス向上に貢献します。

構文(syntax)

1[1, 2, 3, 4, 5].bsearch_index { |element| element >= 3 }

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer または nil

探索対象が見つかった場合は、その要素のインデックス(配列の先頭からの位置)を整数で返します。見つからなかった場合はnilを返します。

関連コンテンツ

関連プログラミング言語