Ruby/Bsearch: 配列を 2分探索する Ruby用のライブラリ

Ruby/Bsearch は配列を 2分探索する Ruby用のライブラリです。ブ ロックで与えた条件にマッチする、最初の要素および最後の要素を 見つけます。

最新版は <URL:http://namazu.org/~satoru/ruby-bsearch/> から入手可能です

API

Array#bsearch_first (range = Range.new(0, self.length() - 1)) {|x| ...}

ブロックで与えた条件にマッチする最初の要素の添字を返す。見つ からなかったら nil を返す。省略可能な引数 range は検索範囲を 指定する

Array#bsearch_last (range = Range.new(0, self.length() - 1)) {|x| ...}

ブロックで与えた条件にマッチする最後の要素の添字を返す。 見つからなかったら nil を返す。省略可能な引数 range は検 索範囲を指定する

Array#bsearch_range (range = Range.new(0, self.length() - 1)) {|x| ...}

ブロックで与えた条件にマッチする最初と最後の要素の添字を Range オブジェクトとして返す。見つからなかったら nil を 返す。省略可能な引数 range は検索範囲を指定する

Array#bsearch (range = Range.new(0, self.length() - 1)) {|x| ...}

Array#bsearch_first の別名

使用例

% irb --simple-prompt -r 'bsearch.rb'
>> %w(a b c c c d).bsearch_first {|x| x <=> "c"}
=> 2
>> %w(a b c c c d).bsearch {|x| x <=> "c"} # same as above
=> 2
>> %w(a b c c c d).bsearch_last {|x| x <=> "c"}
=> 4
>> %w(a b c c c d).bsearch {|x| x <=> "x"}
=> nil
>> %w(a b c c c d).bsearch_range {|x| x <=> "c"}
=> 2..4

ダウンロード

Ruby のライセンスに従ったフリーソフトウェアとして公開します。 完全に無保証です。

satoru@namazu.org