ilib
Version:
iLib is a cross-engine library of internationalization (i18n) classes written in pure JS
1 lines • 609 B
JavaScript
var SearchUtils={};SearchUtils.bsearch=function(e,r,t){if(typeof r==="undefined"||!r||typeof e==="undefined"){return-1}var n=r.length-1,i=0,f=0,u,o=t||SearchUtils.bsearch.numbers;while(i<=n){f=Math.floor((n+i)/2);u=o(r[f],e);if(u>0){n=f-1}else if(u<0){i=f+1}else{return f}}return i};SearchUtils.bsearch.numbers=function(e,r){return e-r};SearchUtils.bisectionSearch=function(e,r,t,n,i){if(typeof e!=="number"||typeof r!=="number"||typeof t!=="number"||typeof i!=="function"){return NaN}var f=0,u,o=n>0?n:1e-13;do{f=(t+r)/2;u=i(f);if(u>e){t=f}else if(u<e){r=f}}while(t-r>o);return f};module.exports=SearchUtils;