binary-search-curryed
Version:
This is a really tiny, curryed, simple binary search library for Node.JS
20 lines (18 loc) • 401 B
JavaScript
var R = require('ramda');
module.exports = R.curry(function (comparator, arr, obj) {
var high= arr.length - 1;
if(high === -1) return high;
var low= 0;
var mid, cmp;
while (low <= high) {
mid = low + (high - low >> 1);
cmp = +comparator(arr[mid], obj);
if (cmp < 0.0)
low = mid + 1;
else if (cmp > 0.0)
high = mid - 1;
else
return mid;
}
return ~low;
});