【发布时间】:2017-09-08 06:24:07
【问题描述】:
我正在尝试在 JavaScript 中实现二进制搜索。我能够返回目标元素的索引,但是,我的程序没有返回“-1”以指示目标值不存在于数组中。例如,如果我有一个 [12, 39, 52, 61, 88, 100] 的数组,并且我将目标值“200”输入到我的二进制搜索函数中,它不会返回“-1”来表示即使我构造了 else 语句来执行此操作,该值也不存在于数组中。谁能告诉我我做错了什么?提前致谢。
我的代码:
function binarySearch(arr, target){
var start = 0;
var end = arr.length - 1;
while(start <= end){
var mid = Math.floor((start + end)/2);
if(arr[mid] < target){
start = mid + 1;
}
else if(arr[mid] === target){
return mid;
}
else if(arr[mid] > target) {
end = mid - 1;
}
else {
return -1;
}
}
}
var myArr = [12, 39, 52, 61, 88, 100];
binarySearch(myArr, 200);
【问题讨论】:
-
在函数末尾写return -1。
标签: javascript algorithm binary-search