Ruby/Bsearch は配列を 2分探索する Ruby用のライブラリです。ブ ロックで与えた条件にマッチする、最初の要素および最後の要素を 見つけます。
最新版は <URL:http://namazu.org/~satoru/ruby-bsearch/> から入手可能です
% irb -r ./bsearch.rb >> %w(a b c c c d e f).bsearch_first {|x| x <=> "c"} => 2 >> %w(a b c c c d e f).bsearch_last {|x| x <=> "c"} => 5 >> %w(a b c e f).bsearch_first {|x| x <=> "c"} => 2 >> %w(a b e f).bsearch_first {|x| x <=> "c"} => nil >> %w(a b e f).bsearch_last {|x| x <=> "c"} => nil >> %w(a b e f).bsearch_lower_boundary {|x| x <=> "c"} => 2 >> %w(a b e f).bsearch_upper_boundary {|x| x <=> "c"} => 2 >> %w(a b c c c d e f).bsearch_range {|x| x <=> "c"} => 2...5 >> %w(a b c d e f).bsearch_range {|x| x <=> "c"} => 2...3 >> %w(a b d e f).bsearch_range {|x| x <=> "c"} => 2...2
Array#bsearch_first (ange = 0 ... self.length) {|x| ...}
Array#bsearch_last (range = 0 ... self.length) {|x| ...}
Array#bsearch_lower_boundary (range = 0 ... self.length) {|x| ...}
Array#bsearch_upper_boundary (range = 0 ... self.length) {|x| ...}
Array#bsearch_range (range = 0 ... self.length) {|x| ...}
Array#bsearch (range = 0 ... self.length) {|x| ...}
Ruby のライセンスに従ったフリーソフトウェアとして公開します。 完全に無保証です。
satoru@namazu.org