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实现图片轮换效果代码
Apr 16 Javascript
浏览器打开层自动缓慢展开收缩实例代码
Jul 04 Javascript
浅析jquery某一元素重复绑定的问题
Jan 03 Javascript
JS创建事件的三种方法(实例代码)
May 12 Javascript
jQuery简单实现上下,左右滑动的方法
Jun 01 Javascript
详解支持Angular 2的表格控件
Jan 19 Javascript
详解Vue-cli 创建的项目如何跨域请求
May 18 Javascript
javascript帧动画(实例讲解)
Sep 02 Javascript
js 提取某()特殊字符串长度的实例
Dec 06 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
Sep 21 Javascript
jquery实现垂直无限轮播的方法分析
Jul 16 jQuery
JS代码优化的8点建议
Feb 04 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/11/19 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
Js判断CSS文件加载完毕的具体实现
2014/01/17 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
select隐藏选中值对应的id,显示其它id的简单实现方法
2016/08/25 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
JS实现购物车特效
2017/02/02 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
JS/HTML5游戏常用算法之追踪算法实例详解
2018/12/12 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
python将文本转换成图片输出的方法
2015/04/28 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
python 实现方阵的对角线遍历示例
2019/11/29 Python
python中的yield from语法快速学习
2020/11/06 Python
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
KELLER SPORTS荷兰:在线订购最好的运动产品
2020/10/13 全球购物
亲子运动会的活动方案
2014/08/17 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
股东授权委托书
2014/10/15 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
2015年公务员工作总结
2015/04/24 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
python开发人人对战的五子棋小游戏
2022/05/02 Python