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 相关文章推荐
use jscript with List Proxy Server Information
Jun 11 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
javascript分页代码(当前页码居中)
Sep 20 Javascript
js arguments对象应用介绍
Nov 28 Javascript
Extjs中的GridPanel隐藏列会显示在menuDisabled中解决方法
Jan 27 Javascript
JSP跨iframe如何传递参数实现代码
Sep 21 Javascript
使用Plupload实现直接上传附件至七牛云存储
Dec 26 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
jquery加载单文件vue组件的方法
Jun 20 jQuery
基于复选框demo(分享)
Sep 27 Javascript
解决bootstrap模态框数据缓存的问题方法
Aug 10 Javascript
JS检测浏览器开发者工具是否打开的方法详解
Oct 02 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
德生S2000电路分析
2021/03/02 无线电
php下载远程文件类(支持断点续传)
2008/11/14 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
Symfony模板的快捷变量用法实例
2016/03/17 PHP
PHP进阶学习之反射基本概念与用法分析
2019/06/18 PHP
Laravel 验证码认证学习记录小结
2019/12/20 PHP
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
分享Python切分字符串的一个不错方法
2018/12/14 Python
一行Python代码制作动态二维码的实现
2019/09/09 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
Python 中 sorted 如何自定义比较逻辑
2021/02/02 Python
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
写一个用矩形法求定积分的通用函数
2012/11/08 面试题
销售人员获奖感言
2014/02/05 职场文书
项目工作说明书
2014/07/29 职场文书
义卖募捐活动总结
2015/05/09 职场文书
企业员工辞职信范文
2015/05/12 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
2016年幼儿园教师师德承诺书
2016/03/25 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
创业计划书之干洗店
2019/09/10 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
javascript canvas实现雨滴效果
2021/06/09 Javascript
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL