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 substr支持中文截取函数代码(中文是双字节)
Apr 17 Javascript
JS实现两个大数(整数)相乘
Apr 28 Javascript
jquery彩色投票进度条简单实例演示
Jul 23 Javascript
AngularJs实现ng1.3+表单验证
Dec 10 Javascript
深入学习jQuery Validate表单验证
Jan 18 Javascript
AngularJS 实现JavaScript 动画效果详解
Sep 08 Javascript
vue子组件使用自定义事件向父组件传递数据
May 27 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
Jun 17 Javascript
详解Vue双向数据绑定原理解析
Sep 11 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
关于vue 项目中浏览器跨域的配置问题
Nov 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
使用session判断用户登录用户权限(超简单)
2013/06/08 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
JQueryiframe页面操作父页面中的元素与方法(实例讲解)
2013/11/19 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
JavaScript中操作Mysql数据库实例
2015/04/02 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
Javascript 函数的四种调用模式
2016/11/05 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
如何用JavaScript实现功能齐全的单链表详解
2019/02/11 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
js实现tab栏切换效果
2020/08/02 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
video.js添加自定义组件的方法
2020/12/09 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
[03:05]《我与DAC》之xiao8:DAC与BG
2018/03/27 DOTA
Python操作CouchDB数据库简单示例
2015/03/10 Python
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Python通过select实现异步IO的方法
2015/06/04 Python
Python的垃圾回收机制详解
2019/08/28 Python
pytorch程序异常后删除占用的显存操作
2020/01/13 Python
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
参观监狱心得体会
2014/01/02 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
汽车广告策划方案
2014/05/31 职场文书
大一新生期末自我评价
2014/09/12 职场文书
投资申请报告
2015/05/19 职场文书
祝福语集锦:给满月宝宝的祝福语
2019/11/20 职场文书