美文网首页
js实现二分查找法

js实现二分查找法

作者: 阿龙哟 | 来源:发表于2018-10-11 19:03 被阅读0次

有序数组

递归实现
function binerySearch(item,arr,start,end){
    var start = start || 0
    var end = end || arr.length-1
    var mid = Math.floor((start+end)/2)

    if(item === arr[mid]){
        return mid
    }else if(item>arr[mid]){
        return binerySearch(item,arr,mid+1,end)
    }else{
        return binerySearch(item,arr,start,mid-1)
    }
    return false
}
var a=[1,2,3,4,5,6,7,8,9]
console.log(binerySearch(5,a))
非递归实现
function binerySearch(item,arr){
    var start = 0;
    var end = arr.length-1;
    var newArr = arr.sort(function(){
        return a-b
    })
    while(start<=end){
        var mid = Math.floor((start+end)/2)
        if(item===arr[mid]){
            return mid
        }else if(item<arr[mid]){
            end = mid-1
        }else{
            start = mid +1
        }
    }
    return false
}
var a=[1,2,3,4,5,6,7,8,9]
console.log(binerySearch(5,a))

相关文章

网友评论

      本文标题:js实现二分查找法

      本文链接:https://www.haomeiwen.com/subject/zjtbaftx.html