二分查找需要数组是有序的,1、先从有序数组的最中间元素开始查找,如果和要查找的元素相等,直接返回索引,若不相等则下一步。2、如果指定的元素大于或者小于中间元素,则在大于或小于的那一半区域内查找,重复第一步直到找到目标元素。
不使用递归:
 function search(arr,key) {
var low=0;
var height=arr.length-1;
var mid;
while(low<=height){
mid=Math.floor((low+height)/2);
if(arr[mid]==key){
return mid;
}else if(arr[mid]<key){
low=mid+1;
}else{
height=mid-1;
}
}
return -1;
}
使用递归:
 function search(arr,low,height,key){
height--;
if(low>height){
return -1;
}
var mid=Math.floor((low+height)/2);
if(arr[mid]==key){
return mid;
}else if(arr[mid]<key){
low=mid+1
return search(arr,low,height,key);
}else{
mid=height-1;
return search(arr,low,height,key);
}
}

最新文章

  1. BZOJ 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘
  2. UVALive 4953 Wormly--【提醒自己看题要仔细】
  3. php set env
  4. OGR – Merging Multiple SHP files
  5. DB Error: 1 &amp;quot;unrecognized token: &amp;quot;:&amp;quot;&amp;quot;
  6. 2015 Multi-University Training Contest 6
  7. a中的类型转换
  8. [extjs(2)] extjs第一个组件treepanel
  9. Java数据持久层框架 MyBatis之API学习四(xml配置文件详解)
  10. modelSIM仿真ROM核报错
  11. css计算属性 calc()
  12. tensorflow和keras混用
  13. vscode之快速生成vue模板
  14. odoo订餐系统之菜单设计
  15. asp.net mvc 中[Authorize]在IE9以上版本关于FormsAuthentication.SetAuthCookie无效的问题 解决方案
  16. redis使用rdb恢复数据
  17. asp.net core webapi 日期返回中出现字母T
  18. ---web模型 --mvc和模型--struts2 入门
  19. mac必装工具以及mac使用介绍
  20. Oracle管理监控之段空间利用监控-oracle性能优化

热门文章

  1. ColorCtr控制颜色渐变
  2. [转]How to Create Custom Filters in AngularJs
  3. (转)AIX下修改用户最大进程数
  4. VCL
  5. jQuery Validate使用说明
  6. 关于docker remote api未授权访问漏洞的学习与研究
  7. Ajax Jq Razor语句
  8. 一个WPF小项目小结
  9. fiddler filters 使用(fiddler只显示指定请求,fiddler不显示指定请求,即filter请求过滤)(转)
  10. 非关系型数据库(NOSQL)-Redis