二进制搜索包含负值的数组

时间:2018-04-12 16:05:00

标签: data-structures binary-search recursive-datastructures

function BinarySearch(items, value) {
    var start = 0,
    stop = items.length - 1,
    mid = Math.floor((stop + start) / 2);

    while (items[mid] !== value && start < stop) {
        if (value < items[mid]) {
           stop = mid - 1;
        } else if (value > items[mid]) {
           start = mid + 1;
        }
       mid = Math.floor((stop + start) / 2);
    }
    var output = (items[mid] != value) ? -1 : mid;
    return output;
}

var arr = [5, 6, 7, 8, 9, 10, 1, -1, 2, 3];
var key = -1;
var ans = BinarySearch(arr, key);
console.log("ans is " + ans);

我试图找到 - 1,使用二进制搜索但它给出了不正确的结果。如果所有数组元素都是正数,这样工作正常但是如果数组元素包含元素值并且我们试图找到负值,则它给出不正确的结果。

0 个答案:

没有答案