二分查找

来源:互联网 发布:黑暗圣斗士知乎 编辑:程序博客网 时间:2024/06/05 20:40
let arr = [1,2,4,5,6,10,23,45,67];function binarySearch(arr, value) {    if(!(arr instanceof Array)) {        return;    }    let left = 0, right = arr.length - 1;    let index = Math.floor((left+right) / 2);    let medium = arr[index];    while(medium != value) {        if(medium > value) {            right = index - 1;        }        if(medium < value) {            left = index + 1;        }        index = Math.floor((left+right)/2);        if(index < left || index > right) {            return -1;        }        medium = arr[index];    }    return index;}