在javascript中搜索排序列表中的项目的最佳方法是什么?

Rus*_*ell 2 javascript arrays sorting

我有一个有序的整数列表,并想搜索它们.

最快的方法是什么?

这是最快的吗?或者我们可以优化它,因为它是有序的吗?

Array.prototype.Contains = function(value) {
    for (var index = 0; index < this.length; index++) {
        if (value == this[index]) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Jam*_*mes 7

尝试实施" 二元搜索 ":

Array.prototype.binarySearch = function(v) {

    /* ARRAY MUST BE SORTED */

    if ( !this.length ) { return false; }
    if ( this[0] === v ) { return true; }

    var i, mid,
        start = 0,
        end = this.length,
        c = false;

    while ( c = (i = this[mid = start+((end-start)>>1)]) !== v ) {

        i < v ? (start = mid) : (end = mid);

        if (start >= end - 1) { break; }

    }

    return !c;

};
Run Code Online (Sandbox Code Playgroud)