直接上码了注释写得很详细:

  function bsearch(A,x){
//l:查找范围左 r:查找范围右
let l = 0, //查询范围左边界
r = A.length-1, //查找范围右边界
guess //中间猜测位置
while(l <= r){
//guess等于l,r中间位置
guess = Math.floor( (l+r)/2 ) //判断当前位置是否为要查找的值,是则返回下标
if(A[guess] === x) return guess
//如果当前位置值大于要查询的值 右边界位置减一
else if(A[guess] > x) r = guess -1
//否则左边界位置加1
else l = guess + 1
}
//找不到返回-1
return -1
}
const a = [3,5,4,7,12,42,47,66,71,78];
console.log(bsearch(a,12))//
console.log(bsearch(a,4))//-1
console.log(bsearch(a,66))//
console.log(bsearch(a,5))//

最新文章

  1. SharePoint 2013 Search REST API 使用示例
  2. appium 环境搭建 java
  3. 写个PHP框架吧
  4. html5 摇一摇事件监听
  5. Scheduled Projects
  6. Thinking in Java——笔记(3)
  7. Linux的watch命令 — 实时监测命令的运行结果
  8. java中4中类修饰符访问范围
  9. Topcoder srm 632 div2
  10. Host Definition
  11. 解决iOS应用内购买报错:invalidProductIdentifiers
  12. ZOJ 2770 Burn the Linked Camp(spfa&amp;&amp;bellman)
  13. selenium webDriver给隐藏域赋值 input hidden set value
  14. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?
  15. html和css的使用方法以及样式
  16. 遍历文件,读取.wxss文件,在头部添加一条注释
  17. 前后端分离开发之前端自己的API(DB)---- (1)
  18. (概率 01背包) Just another Robbery -- LightOJ -- 1079
  19. 【RF库XML测试】Add Element
  20. 洛谷 P4009 汽车加油行驶问题 解题报告

热门文章

  1. [Xcode 实际操作]八、网络与多线程-(17)使用网址会话对象URLSession向远程服务器上传图片
  2. PJzhang:国内常用威胁情报搜索引擎说明
  3. java基础第二篇
  4. SqlServer 分页批按时间排序
  5. [Python]IndentationError: unindent does not match any outer indentation level
  6. ZOJ3329(数学推导+期望递推)
  7. Curious Array Codeforces - 407C(高阶差分(?)) || sequence
  8. 命令行视频下载工具 you-get 和 youtube-dl
  9. freertos之资源管理学习
  10. 本地连接远程Oracle数据库