首页 > 解决方案 > 我是否在下面的 javascript 代码中正确实现了二进制搜索的概念

问题描述

我对是否实现了二进制搜索算法感到困惑。首先,我划分列表并确定中间值,然后根据中间值搜索键。请检查此代码:

    function binarySearch(mid, end, key){
    //right traversal
    if(key>mid){
        for(var i=mid;i<=end;i++){
            if(list[i] == key){
                return(list[i])
            }
        }
        return null
    }
    //left traversal
    else if(key<mid){
        for(var i=0;i<mid;i++){
            if(list[i] == key){
                return(list[i])
            }
        }
        return null
    }
    else{
        return(mid)
    }
}

list = [1, 2, 3, 4, 5, 6, 7, 8]
let end = list.length-1
let mid = list[parseInt(end/2)]
let search_key = 67

if(binarySearch(mid,end,search_key) != null){
    console.log("Key found at position "+binarySearch(mid,end,search_key))
}else{
    console.log("Key Not found ")
}

标签: javascript

解决方案


推荐阅读