JavaScript使用二分查找算法在数组中查找数据的方法


Posted in Javascript onApril 07, 2015

本文实例讲述了JavaScript使用二分查找算法在数组中查找数据的方法。分享给大家供大家参考。具体分析如下:

二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。

var Arr = [3,5,6,7,9,12,15];
function binary(find,arr,low,high){
if(low <= high){
if(arr[low] == find)
return low;
if(arr[high] == find)
return high;
var mid = Math.ceil((high + low)/2);
if(arr[mid] == find){
return mid;
}else if(arr[mid] > find){
return binary(find,arr,low,mid-1);
}else{
return binary(find,arr,mid+1,high);
}
}
return -1;
}
binary(15,Arr,0,Arr.length-1);

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
Javascript 实现TreeView CheckBox全选效果
Jan 11 Javascript
jquery中获取select选中值的代码
Jun 27 Javascript
调试Javascript代码(浏览器F12及VS中debugger关键字)
Jan 25 Javascript
jquery中checkbox全选失效的解决方法
Dec 26 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
Mar 01 Javascript
js输出数据精确到小数点后n位代码
Jul 02 Javascript
Javascript同时声明一连串(多个)变量的方法
Jan 23 Javascript
vue 2.0 购物车小球抛物线的示例代码
Feb 01 Javascript
vue 实现数字滚动增加效果的实例代码
Jul 06 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 Javascript
layui清空,重置表单数据的实例
Sep 12 Javascript
详解React的回调渲染模式
Sep 10 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
Apr 07 #Javascript
JS 作用域与作用域链详解
Apr 07 #Javascript
JavaScript实现在页面间传值的方法
Apr 07 #Javascript
简易的投票系统以及js刷票思路和方法
Apr 07 #Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
Apr 07 #Javascript
TypeScript具有的几个不同特质
Apr 07 #Javascript
实现前后端数据交互方法汇总
Apr 07 #Javascript
You might like
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
2009/11/26 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
JS继承用法实例分析
2015/02/05 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
原生js实现html手机端城市列表索引选择城市
2020/06/24 Javascript
Python中断言Assertion的一些改进方案
2016/10/27 Python
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
Python遍历某目录下的所有文件夹与文件路径
2018/03/15 Python
python实现银行管理系统
2019/10/25 Python
python中dict()的高级用法实现
2019/11/13 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
实现ECharts双Y轴左右刻度线一致的例子
2020/05/16 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
简历中自我评价分享
2013/10/09 职场文书
如何客观的进行自我评价
2013/12/17 职场文书
团队精神演讲稿
2013/12/31 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
任命书模板
2014/06/04 职场文书
实训报告范文大全
2014/11/04 职场文书
大班上学期个人总结
2015/02/13 职场文书
2015年艾滋病宣传活动总结
2015/03/27 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
遗嘱范文
2015/08/07 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技