Module: Drip::ArrayBsearch

Included in:
FakeRBTree, ImmutableDrip, SortedArray
Defined in:
lib/drip.rb

Class Method Summary collapse

Class Method Details

.lower_boundary(ary, key) ⇒ Object



376
377
378
379
380
381
382
383
384
385
386
387
388
# File 'lib/drip.rb', line 376

def lower_boundary(ary, key)
  lower = -1
  upper = ary.size
  while lower + 1 != upper
    mid = (lower + upper).div(2)
    if (ary[mid][0] <=> key) < 0
      lower = mid
    else
      upper = mid
    end
  end
  return upper
end

.upper_boundary(ary, key) ⇒ Object



390
391
392
393
394
395
396
397
398
399
400
401
402
# File 'lib/drip.rb', line 390

def upper_boundary(ary, key)
  lower = -1
  upper = ary.size
  while lower + 1 != upper
    mid = (lower + upper).div(2)
    if (ary[mid][0] <=> key) <= 0
      lower = mid
    else
      upper = mid
    end
  end
  return lower + 1
end