我正在努力在可汗学院的算法: https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/p/challenge-binary-search 以下大部分代码的结果为-1?这是为什么? 所以二进制搜索不会有效地工作?汗学院算法:二进制搜索解决方案
var doSearch = function(array, targetValue) {
var min = 0;
var max = array.length - 1;
var guess;
while(min < max) {
guess = Math.floor((max + min)/2);
if (array[guess] === targetValue) {
return guess;
}
else if (array[guess] < targetValue) {
min = guess + 1;
}
else {
max = guess - 1;
}
}
return -1;
};
var primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97];
for(var i=0;i<primes.length;i++){
var result = doSearch(primes,primes[i]);
console.log("Found prime at index of " + primes[i] +" @ " + result);
}
结果:
Found prime at index of 2 @ 0
Found prime at index of 3 @ -1
Found prime at index of 5 @ 2
Found prime at index of 7 @ 3
Found prime at index of 11 @ -1
Found prime at index of 13 @ 5
Found prime at index of 17 @ 6
Found prime at index of 19 @ -1
Found prime at index of 23 @ 8
Found prime at index of 29 @ -1
Found prime at index of 31 @ 10
Found prime at index of 37 @ -1
Found prime at index of 41 @ 12
Found prime at index of 43 @ 13
Found prime at index of 47 @ -1
Found prime at index of 53 @ 15
Found prime at index of 59 @ 16
Found prime at index of 61 @ -1
Found prime at index of 67 @ 18
Found prime at index of 71 @ 19
Found prime at index of 73 @ -1
Found prime at index of 79 @ 21
Found prime at index of 83 @ -1
Found prime at index of 89 @ 23
Found prime at index of 97 @ -1
我失去了什么?
@JoachimPileborg你确定是什么意思?为什么我投票呢?我跟着这个小提琴http://jsfiddle.net/7zfph6ks/ – Sathish
@JoachimPileborg不是吗?它似乎。 –
@JoachimPileborg是这样吗?你能指出我的平均表现吗? – Sathish