Ruby/Bsearch は配列を 2分探索する Ruby用のライブラリです。ブ ロックで与えた条件にマッチする、最初の要素および最後の要素を 見つけます。
最新版は <URL:http://namazu.org/~satoru/ruby-bsearch/> から入手可能です
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