js 二分查找(Binary Search)
Posted mingL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 二分查找(Binary Search)相关的知识,希望对你有一定的参考价值。
数组二分查找:
1.先对数组排序,从小到大排序
2.定义两个指针,左指针(left)指向数组第一个元素,右指针(right)指向数组最后一个元素
3.取数组中间(nums[mid])的项和目标值(target)比较
4.如果中值小于目标值,说明目标值在后半数组,将左指针(left)指向nums[mid+1],若大于同理。如果相等就直接返回
5.如果左指针指向的项的索引大于右指针指向的项的索引,说明已经查找完了也没找到目标值,返回-1
代码如下:
var search = function(nums, target) { var l=0,r=nums.length-1; while(l<=r){ var mid=parseInt((l+r)/2); if(target===nums[mid]) return mid; else if(target<nums[mid]) r=mid-1; else if(target>nums[mid]) l=mid+1; } return -1; };
以上是关于js 二分查找(Binary Search)的主要内容,如果未能解决你的问题,请参考以下文章