Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 二进制搜索返回n的第一个匹配项_Javascript_Binary Search - Fatal编程技术网

Javascript 二进制搜索返回n的第一个匹配项

Javascript 二进制搜索返回n的第一个匹配项,javascript,binary-search,Javascript,Binary Search,我实现了以下二进制搜索方法,用于查找排序数组中n的位置 Array.prototype.binarySearch = function(n) { var o = 0; var i = this.length; while(i) { i >>= 1; if(n == this[i+o]) return i+o; else if(n > this[i+o]) o += i+1; } retu

我实现了以下二进制搜索方法,用于查找排序数组中
n
的位置

Array.prototype.binarySearch = function(n) {
    var o = 0;
    var i = this.length;

    while(i) {
        i >>= 1;
        if(n == this[i+o]) return i+o;
        else if(n > this[i+o]) o += i+1;
    }

    return -1;
};
但是,如果有多个
n
,它将返回任意索引,而不是第一个索引。
如何调整我的实现以返回第一次出现的
n

Wiki以语言不可知的方式描述此算法:Wiki以语言不可知的方式描述此算法: