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以语言不可知的方式描述此算法: