1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
=begin
= Ruby/Bsearch: 2ʬõ RubyѤΥ饤֥
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
==
<<< figure
== API
--- Array#bsearch_first (ange = 0 ... self.length) {|x| ...}
֥åͿ˥ޥåǽǤź֤
ʤä nil ֤άǽʰ range ϸϰϤ
ꤹ
õϥ֥å {|x| x <=> key} Τ褦Ϥޤ
߽õϥ֥å {|x| key <=> x} Τ褦Ϥޤ
ΤȤʤ顢2ʬõ˥ȤƤɬפޤ
--- Array#bsearch_last (range = 0 ... self.length) {|x| ...}
֥åͿ˥ޥåǸǤź֤
Ĥʤä nil ֤άǽʰ range ϸ
ϰϤꤹ
õϥ֥å {|x| x <=> key} Τ褦Ϥޤ
߽õϥ֥å {|x| key <=> x} Τ褦Ϥޤ
ΤȤʤ顢2ʬõ˥ȤƤɬפޤ
--- Array#bsearch_lower_boundary (range = 0 ... self.length) {|x| ...}
֥åͿ˥ޥå벼¤ζ֤
άǽʰ range ϸϰϤꤹ
õϥ֥å {|x| x <=> key} Τ褦Ϥޤ
߽õϥ֥å {|x| key <=> x} Τ褦Ϥޤ
ΤȤʤ顢2ʬõ˥ȤƤɬפޤ
--- Array#bsearch_upper_boundary (range = 0 ... self.length) {|x| ...}
֥åͿ˥ޥå¤ζ֤
άǽʰ range ϸϰϤꤹ
õϥ֥å {|x| x <=> key} Τ褦Ϥޤ
߽õϥ֥å {|x| key <=> x} Τ褦Ϥޤ
ΤȤʤ顢2ʬõ˥ȤƤɬפޤ
--- Array#bsearch_range (range = 0 ... self.length) {|x| ...}
֥åͿ˥ޥå벼¤Ⱦ¤ζ
Range ֥ȤȤ֤
άǽʰ range ϸϰϤꤹ
õϥ֥å {|x| x <=> key} Τ褦Ϥޤ
߽õϥ֥å {|x| key <=> x} Τ褦Ϥޤ
ΤȤʤ顢2ʬõ˥ȤƤɬפޤ
--- Array#bsearch (range = 0 ... self.length) {|x| ...}
Array#bsearch_first ̾
==
Ruby Υ饤˽äեեȥȤƸޤ
̵ݾڤǤ
* ((<URL:http://namazu.org/~satoru/ruby-bsearch/ruby-bsearch-1.4.tar.gz>))
* ((<URL:http://cvs.namazu.org/ruby-bsearch/>))
satoru@namazu.org
=end
|