var arr = [3, 8, 35, 36, 223, 788, 999, 1000, 8333],
b = document.getElementById("log");
var i = 0;
bird(arr, 5, 0, arr.length - 1);
function bird(arr, value, left, right) {
i++;
b.innerHTML += '
'+i+'. left: '+left+' right: '+right;
if (left > right) {
window.alert('您要查找的数不存在');
return; //必须要有,这样运行到此句时,后边的语句就不会执 //行了,如果没有此句,则查找一个不存在的数时死递 //归了
}
middle = Math.ceil((left + right) / 2);
b.innerHTML += ' middle: '+middle;
if (value > arr[middle]) {
bird(arr, value, middle + 1, right);
} else if (value
bird(arr, value, left, middle - 1);
} else {
window.alert('您要查找的数已经找到,下标为' + middle);
}
}
你仔细看看运算步骤,就能看明白了