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 相关文章推荐
jquery如何实现在加载完iframe的内容后再进行操作
Sep 10 Javascript
利用浏览器全屏api实现js全屏
Jan 16 Javascript
js模拟hashtable的简单实例
Mar 06 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
Aug 15 Javascript
JavaScript SHA512加密算法详细代码
Oct 06 Javascript
JavaScript实现页面定时刷新(定时器,meta)
Oct 12 Javascript
DWR3 访问WEB元素的两种方法实例详解
Jan 03 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
十分钟带你快速了解React16新特性
Nov 10 Javascript
vue2.0 资源文件assets和static的区别详解
Apr 08 Javascript
JavaScript设计模式之单例模式简单实例教程
Jul 02 Javascript
浅谈vue 多个变量同时赋相同值互相影响
Aug 05 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面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
表单的焦点顺序tabindex和对应enter键提交
2013/01/04 Javascript
Ajax同步与异步传输的示例代码
2013/11/21 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
2016/12/22 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
2020/07/28 Javascript
跟老齐学Python之永远强大的函数
2014/09/14 Python
简单的Python2.7编程初学经验总结
2015/04/01 Python
python中的字典操作及字典函数
2018/01/03 Python
Python实现动态图解析、合成与倒放
2018/01/18 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
Python实现序列化及csv文件读取
2020/01/19 Python
解决pyqt5异常退出无提示信息的问题
2020/04/08 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
Ajax请求总共有多少种Callback
2016/07/17 面试题
计算机应用专业应届毕业生中文求职信范文
2013/11/29 职场文书
车间操作工岗位职责
2013/12/19 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
世博会口号
2014/06/20 职场文书
2014年信用社工作总结
2014/11/25 职场文书