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 更新 JavaScript 数组的 uniq 方法
Jan 23 Javascript
网页中的图片的处理方法与代码
Nov 26 Javascript
JavaScript拆分字符串时产生空字符的解决方案
Sep 26 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
Nov 02 Javascript
详解JavaScript中|单竖杠运算符的使用方法
May 23 Javascript
jQuery向webApi提交post json数据
Jan 16 Javascript
浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结
Mar 29 Javascript
jquery replace方法去空格
May 08 jQuery
jquery在vue脚手架中的使用方式示例
Aug 29 jQuery
node下使用UglifyJS压缩合并JS文件的方法
Mar 07 Javascript
微信小程序实现笑脸评分功能
Nov 03 Javascript
JavaScript canvas实现雪花随机动态飘落
Feb 08 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 程式大小
2006/12/06 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
2012/11/07 PHP
PHP删除非空目录的函数代码小结
2013/02/28 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
js隐式全局变量造成的bug示例代码
2014/04/22 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
JavaScript两个变量交换值的实现方法
2017/03/01 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
基于jquery实现多级菜单效果
2017/07/25 jQuery
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
Vue通过WebSocket建立长连接的实现代码
2019/11/05 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
python 中random模块的常用方法总结
2017/07/08 Python
对python修改xml文件的节点值方法详解
2018/12/24 Python
Python实现深度遍历和广度遍历的方法
2019/01/22 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
社会实践心得体会
2014/01/03 职场文书
高中生个性发展自我评价
2015/03/09 职场文书
惊涛骇浪观后感
2015/06/05 职场文书
比较node.js和Deno
2021/04/27 Javascript
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python