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