说明
1、使用二分查找算法查找数组中相应的目标值下标。
2、二分搜索算法的前提是一个有序的数组,所以当编码实现时,首先要对其进行排序。
二分查找的过程
(1)分成两半,最左边的指针low,最右边的指针high,最中间的指针mid。
(2)如果找到的目标值小于中间mid对应的值,则表示目标值在左边,则缩小范围,将high设置为mid-1。
(3)如果找到的目标值大于中间mid对应的值,则表示目标值在右边,则缩小范围,将low设置为mid+1。
(4)如果找到的目标值等于中间mid对应的值,则直接返回mid。
实例
Array.prototype.binarySort=function(target){ //随便用什么算法排,但是二分查找的前提是有序数组哦 this.quickSort(); letlow=0; lethigh=this.length-1; while(low<=high){ constmid=Math.floor((low+high)/2); constmidItem=this[mid]; //如果查找的目标值小于中间的点 if(target<midItem){ //说明目标值在左半边,那high指针就是mid的前一位 high=mid-1; }elseif(target>midItem){ //如果目标值在右半边,那low指针就是mid的后面一位 low=mid+1; }else{ //目标值就是正中间 returnmid; } } //没找到 return-1; } constarr=[1,5,9,3,18,6,2,7] console.log(arr.binarySort(9));
以上就是JavaScript二分查找算法的使用,希望对大家有所帮助。更多Javascript学习指路:Javascript
原文来自:https://www.py.cn© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容