var list = [1,2,3,4,5,6,7,8,9,10];
var binaryRecursiveSearch = function(list, search_num, left, right) {
var left = left || 0;
var right = right || list.length;
var middle;
var compare = function(a, b) {
console.log("compare a:"+a+", b:"+b);
if (a < b) return -1;
else if (a === b) return 0;
else return 1;
}
if (left <= right) {
middle = Math.round((left + right) / 2);
console.log("left: "+left+", right:"+right+", search_num:"+search_num);
switch (compare(list[middle], search_num)) {
case -1: return
binaryRecursiveSearch(list, search_num, middle+1, right);
case 0: return middle;
case 1: return
binaryRecursiveSearch(list, search_num, left, middle-1);
}
}
return -1;
}
binaryRecursiveSearch(list, 3);
下面几个地方吧: