JS数据结构与算法——二分查找
/**
* 二分查找
* @param {Array} arr 待查找数组,数组需要已按照从小到大排序
* @param {Any} x 待查找项
* @return {Number} 如果找到返回位置下标,不存在返回`-1`
*/
function bSearch(arr,x) {
let left = 0, //查找左边界
right = arr.length-1,, //查找右边界
guess; //猜测位置(中间位置)
while(left <= right) {
guess = Math.floor( (1+right) / 2);
if ( arr[guess] === x ) return guess
else if (arr[left] > x ) right = guess - 1
else left = guess + 1;
}
return -1
}