javascript顺序数组简单实现个二分查找

Posted y-y-y-y

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript顺序数组简单实现个二分查找相关的知识,希望对你有一定的参考价值。

直接上码了注释写得很详细:

  function bsearch(A,x){
        //l:查找范围左 r:查找范围右
        let l = 0, //查询范围左边界
            r = A.length-1, //查找范围右边界
            guess //中间猜测位置
        while(l <= r){
            //guess等于l,r中间位置
            guess = Math.floor( (l+r)/2 )       

            //判断当前位置是否为要查找的值,是则返回下标
            if(A[guess] === x) return guess
            //如果当前位置值大于要查询的值 右边界位置减一
            else if(A[guess] > x) r = guess -1
            //否则左边界位置加1
            else l = guess + 1
        }
        //找不到返回-1
        return -1
    }
    const a = [3,5,4,7,12,42,47,66,71,78];
    console.log(bsearch(a,12))//4
    console.log(bsearch(a,4))//-1
    console.log(bsearch(a,66))//7
    console.log(bsearch(a,5))//1

 

以上是关于javascript顺序数组简单实现个二分查找的主要内容,如果未能解决你的问题,请参考以下文章

查找算法总结—顺序二分二叉红黑

查找算法总结—顺序二分二叉红黑

c语言如何实现-数组排序,二分查找

数据查找之80-20原则的JavaScript代码实现

虽然简单,但是面试时却容易写错的一个算法:二分查找(迭代和递归2种实现方式)

C++数据结构——顺序表的查找(简单顺序查找有序表的二分查找索引顺序的查找)