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 相关文章推荐
利用js对象弹出一个层
Mar 26 Javascript
jQuery下的几个你可能没用过的功能
Aug 29 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
jQuery实现每隔几条元素增加1条线的方法
Jun 27 Javascript
JavaScript中子对象访问父对象的方式详解
Sep 01 Javascript
AngularJS入门教程之多视图切换用法示例
Nov 02 Javascript
angularjs的select使用及默认选中设置
Apr 08 Javascript
Js实现京东无延迟菜单效果实例(demo)
Jun 02 Javascript
Ionic3 UI组件之autocomplete详解
Jun 08 Javascript
js比较两个单独的数组或对象是否相等的实例代码
Apr 28 Javascript
Vue CLI3中使用compass normalize的方法
May 30 Javascript
小程序input数据双向绑定实现方法
Oct 17 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
PHP JSON 数据解析代码
2010/05/26 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
php 字符串替换的方法
2012/01/10 PHP
分割GBK中文遭遇乱码的解决方法
2013/08/09 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
关于session和cookie的简单理解
2016/06/08 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
ES6数组的扩展详解
2017/04/25 Javascript
JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法
2017/04/28 Javascript
JavaScript实现多个物体同时运动
2020/03/12 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
[00:32]2018DOTA2亚洲邀请赛EG出场
2018/04/03 DOTA
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
Python-Seaborn热图绘制的实现方法
2019/07/15 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
Python面向对象实现方法总结
2020/08/12 Python
python爬取youtube视频的示例代码
2021/03/03 Python
pytorch 把图片数据转化成tensor的操作
2021/03/04 Python
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
初三学习决心书
2014/03/11 职场文书
《李时珍夜宿古寺》教学反思
2014/04/09 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
购房个人委托书范本
2014/10/11 职场文书
优秀校长事迹材料
2014/12/24 职场文书
五年级下册复习计划
2015/01/19 职场文书
土建施工员岗位职责
2015/04/11 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python