UNPKG

@extra-array/bsearchc

Version:

Binary searches closest value in sorted array.

22 lines (20 loc) 489 B
const cmp = require('./_cmp'); /** * Binary searches closest value in sorted array. * @param {Array} x an array (sorted) * @param {*} v value to find * @param {function?} fn compare function (a, b) * @returns {number} index of closest value */ function bsearchc(x, v, fn) { fn = fn||cmp; for(var i=0, I=x.length; i<I;) { var m = (i+I)>>>1; var c = fn(x[m], v); if(c<0) i = m+1; else if(c>0) I = m; else return m; } return i; } module.exports = bsearchc;