Quick actions

cmd+k|ctrl+k

Navigation

Languages

Binary Search

Snippet info

Language

JavaScript

Visibility

public

Author

pheker

Created

2018-03-30T13:05:51Z

Updated

2018-03-30T13:32:15Z


// 二分查找
main();

function main(){
    let arr = [-3,-1,...Array(100).keys()];
    let index = run(arr,0);
    if(!~index){
        console.log("not contain")
    }else{
        console.log("index:",index,
            "\tbefore:",arr[index],
            "\tafter:",arr[index+1])
    }
}

function run(arr,value){
    let end = arr.length - 1;
    if(arr === undefined || arr.length === 0
        ||value<arr[0]||value>arr[end]){
        return -1;
    }
    return half(arr,0,end,value)
}

function half(arr,start,end,value){
    if(start+1 >= end) return start;
    let mid = start + ((end - start)>>1);
    return arr[mid] >= value? half(arr,start,mid,value):half(arr,mid,end,value);
}




INFO