Method: Array#bsearch_last
- Defined in:
- lib/array_bsearch.rb
#bsearch_last(range = 0 ... self.length, &block) ⇒ Object
This method searches the LAST occurrence which satisfies a condition given by a block in binary fashion and return the index of the last occurrence. Return nil if not found.
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/array_bsearch.rb', line 62 def bsearch_last (range = 0 ... self.length, &block) # `- 1' for canceling `lower + 1' in bsearch_upper_boundary. boundary = bsearch_upper_boundary(range, &block) - 1 if (boundary <= -1 || yield(self[boundary]) != 0) return nil else return boundary end end |