Method: Array#bsearch_lower_boundary
- Defined in:
- lib/array_bsearch.rb
#bsearch_lower_boundary(range = 0 ... self.length, &block) ⇒ Object
Return the lower boundary. (inside)
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/array_bsearch.rb', line 10 def bsearch_lower_boundary (range = 0 ... self.length, &block) lower = range.first() -1 upper = if range.exclude_end? then range.last else range.last + 1 end while lower + 1 != upper mid = ((lower + upper) / 2).to_i # for working with mathn.rb (Rational) if yield(self[mid]) < 0 lower = mid else upper = mid end end return upper end |