码迷,mamicode.com
首页 > Web开发 > 详细

js 二分查找(Binary Search)

时间:2018-10-21 13:13:39      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:相等   arch   bin   tar   代码   二分查找   func   查找   第一个   

数组二分查找:

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)

标签:相等   arch   bin   tar   代码   二分查找   func   查找   第一个   

原文地址:https://www.cnblogs.com/xingguozhiming/p/9824513.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!