javascript - 我是否在下面的 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 ")
}
解决方案
推荐阅读
- arduino - Arduino analogWrite() 导致程序冻结
- c# - 请求被中止:未能创建 SSL/TLS 安全通道
- python - ClickHouse - 是否有可能通过 JOIN 查询 Jupyter Notebook 中的 DataFrame?
- python - 为什么列表在 Python 的函数中被修改?
- audiounit - 基于 AVAudioUnitSampler 的 AUv3 扩展未注册
- python - 当我尝试将用户上传的图像保存在视图中时,为什么 ImageField 中的 upload_to 根本不起作用
- angular - 如何在角度 10 中自动重置输入值(formGroup)?
- visual-studio-code - 如何使用正则表达式用增加的整数替换字符串模式
- r - 如何处理GGally的ggparcoord中的重叠线
- django - 使用 Knox Token Authentication django 保持用户登录