• 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;
    };
  • 相关阅读:
    HDU 1097
    HDU 1045
    HDU 1039 -Easier Done Than Said?
    HDU 1038
    HDU 1037 - Keep on Truckin'
    HDU 1036 - Average is not Fast Enough!
    hdu 1701 ACMer
    hdu 1711 Number Sequence(kmp)
    hdu 2087 剪花布条
    字符串匹配-KMP算法学习笔记
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/9824513.html
Copyright © 2020-2023  润新知