1.将数组的第一个位置设置为下边界(0)
2.将数组最后一个元素所在的位置设置为上边界(数组的长度减1)。
3.若下边界等于或小于上边界,则做如下操作。
- 将中点设置为(上边界加上下边界)除以2
- 如果中点的元素小于查询的值,则将下边界设置为中点元素所在下标加1
- 如果中点的元素大于查询的值,则将上边界设置为中点元素所在下标减1
- 否则中点元素即为要查找的数据,可以进行返回。
function binSearch(arr, data) {
var upperBound = arr.length - 1;
var lowerBound = 0;
while (lowerBound <= upperBound) {
var mid = Math.floor((upperBound + lowerBound) / 2);
if (arr[mid] < data) {
lowerBound = mid + 1;
}
else if(arr[mid] > data) {
upperBound = mid - 1;
} else {
return mid;
}
}
return -1;
}
var preOrder = function (node) {
if (node) {
console.log(node.value);
preOrder(node.left);
preOrder(node.right);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |