切换导航
京西&周倍庆&程序猿
首页
前端
JavaScript
jQuery
AngularJS
Bootstrap
后端
Nginx
MySQL
PHP
系统
Mac
Centos
杂谈
工作
娱乐
爱情
梦想
JS算法之二分查找法获取指定数值
浏览量:
33
发布时间:
2016-01-17
发布人:
京西
文章由
京西
原创,转载时请在文章底部添加如下内容
本文转载自京西的个人博客,原文链接为
http://www.siguoya.name/home/article/47
相关推荐
JavaScript现在和将来都将是编程
创造 JavaScript 仅用 10
####二分查找法的使用场景 >- **数据量比较大** - **数据按照从小到大的顺序进行排列** #####问题:给定一个数组[1,2,4,8,16,32,64,128,256,512,1024,2048,4096],使用JS二分查找算法获取2048在数组中的下标 ```javascript var arr=[1,2,4,8,16,32,64,128,256,512,1024,2048,4096]; function findIndex (arr,value) { var minIndex=0; var maxIndex=arr.length-1; var midIndex=parseInt(arr.length/2) //数值判断,避免无效查询 if(arr[minIndex]>value || arr[maxIndex]<value){ return false; } while(minIndex<=maxIndex){ var midIndex=parseInt((minIndex+maxIndex)/2); if(arr[midIndex]==value){ return midIndex; } //如果没有+1和-1,在查找不存在的数值时会造成死循环 if(arr[midIndex]>value){ maxIndex=midIndex-1; }else{ minIndex=midIndex+1; } } return false; } alert(findIndex(arr,250)); ```