O(log n) binary search

uses binary search to look for left bound, instead of sequential search
where in worst case could result O(n) runtime.