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
}
posted @ 2019-05-10 15:31  YooHoeh  阅读(79)  评论(0编辑  收藏  举报
被你发现了?