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 相关文章推荐
return false;和e.preventDefault();的区别
Jul 11 Javascript
Jquery中getJSON在asp.net中的使用说明
Mar 10 Javascript
javascript学习笔记(一) 在html中使用javascript
Jun 18 Javascript
javascript:文字不间断向左移动的实例代码
Aug 08 Javascript
jquery 按钮状态效果 正常、移上、按下
Aug 12 Javascript
JS 实现可停顿的垂直滚动实例代码
Nov 23 Javascript
微信小程序开发(二)图片上传+服务端接收详解
Jan 11 Javascript
详解Angualr 组件间通信
Jan 21 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
JS实现的RC4加密算法示例
Aug 16 Javascript
在layui中select更改后生效的方法
Sep 05 Javascript
JavaScript实现省市区三级联动
Feb 13 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
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
2017/08/02 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
Zabbix添加Node.js监控的方法
2016/10/20 Javascript
详解jQuery选择器
2016/12/21 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
JS中箭头函数与this的写法和理解
2021/01/14 Javascript
python中while循环语句用法简单实例
2015/05/07 Python
python MySQLdb Windows下安装教程及问题解决方法
2015/05/09 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python实现计算最小编辑距离
2016/03/17 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
详解python实现交叉验证法与留出法
2019/07/11 Python
python3中布局背景颜色代码分析
2020/12/01 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
澳大利亚拥有最佳跳伞降落点和最好服务的跳伞项目运营商:Skydive Australia
2018/03/05 全球购物
个人简历自我鉴定
2013/10/11 职场文书
教师辞职报告范文
2014/01/20 职场文书
银行内勤岗位职责
2014/04/09 职场文书
计划生育宣传标语
2014/06/21 职场文书
法人委托书
2014/07/31 职场文书
教师政风行风自查自纠报告
2014/10/21 职场文书
销售员态度差检讨书
2014/10/26 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
行政介绍信范文
2015/05/04 职场文书
中小学生安全教育观后感
2015/06/17 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书