Javascript算法论道: 二分搜索(折半查找)
来源:互联网 发布:知父莫若子by谦心诀 编辑:程序博客网 时间:2024/04/29 08:51
Javascript算法论道: 二分搜索(折半查找)
本文是Javascript算法论道系列的第一篇,讨论一种大家经常遇到的算法——二分搜索算法,
想必大家都玩过”猜数字”游戏:
一般十个人以上玩,主持人出数字,下方猜。主持人在手机或电脑上写下在1-100之间随便1个数字,不能让猜得人知道。其他的人就可以开始猜。猜中的有奖励:
1-100中随机产生一个数字,如:56
每个人开始猜猜数字,如:A说:30 主持人说:低了,30到100 ,B在从30到100中猜数字说:60,主持人在说:高了,30到60,………… Z说:56,主持人说:恭喜你,中奖了!!!!
这和二分搜索的思路是一致的:
二分搜索(折半查找)是一种经典的检索算法。该算法的基本思想如下:(1) 选择数组的中间值。 (2) 如果选中值是待搜索值,那么算法执行完毕(值找到了)。 (3) 如果待搜索值比选中值要小,则返回步骤(1)并在选中值左边的子数组中寻找。 (4) 如果待搜索值比选中值要大,则返回步骤(1)并在选种值右边的子数组中寻找。
算法的实现思路如下:
function binarySearch(target, array) { var low = 0, high = array.length - 1, mid, midElement; while(low <= high){ mid = Math.floor((low + high) / 2); midElement = array[mid]; if (target > midElement) { low = mid + 1; }else if (target < midElement){ high = mid - 1; }else{ console.log('target index is : ' + mid); return mid; } } return -1;}
二分搜索github源码地址
0 0
- Javascript算法论道: 二分搜索(折半查找)
- 二分查找(折半搜索)算法
- 二分查找算法、折半搜索、二分搜索
- 搜索算法----二分查找(折半查找)
- 搜索算法-二分搜索(折半查找)
- 二分搜索算法(折半查找)
- 搜索算法二分查找法(折半查找法)
- 搜索算法二分查找法(折半查找法)
- javascript 折半查找/二分查找
- 算法 二分查找(折半查找)
- 二分(折半)查找算法
- 二分(折半)查找算法
- 二分查找(折半算法)
- 二分查找算法(折半查找算法)
- 二分查找算法(折半查找算法)
- 折半查找算法(二分查找算法)
- javascript二分查找法(折半查找)
- JavaScript实现折半查找(二分查找)
- c/c++常量总结
- 面试题41-题目2:和为S的连续正数序列
- 详解es6中箭头函数
- Mac OS X 删除 MySQL
- 麻烦别人 也不要麻烦自己
- Javascript算法论道: 二分搜索(折半查找)
- 贝塞尔曲线
- 求值器和NURBS
- 谨慎能捕千秋蝉(二)——CSRF
- 携程ELK日志分析平台深耕之路
- SourceTree 免登录跳过初始设置
- Linux命令搜索路径
- HTML+CSS
- 剑指offer——不用加减乘除做加法