(查找的数组为有序数组,本文为升序数组)
二分查找法的思路分析:
- 首先确定该数组的中间的下标 mid=(left+right)/2 js代码下需要加上Math.floor(),否则会除法得出小数结果
- 让需要查找的数 target 和 arr[mid] 比较
- target>arr[mid],说明要查找的数在 mid 的右边,因此需要递归地向右查找
- target<arr[mid],说明要查找的数在 mid 的左边,因此需要递归地向左查找
- target==arr[mid],说明找到,就返回
那么什么时候结束递归呢?
- 找到就结束递归
- 递归完整个数组,仍然没有找到target,也需要结束递归 当 left>right 就需要退出
var arr = new Array(1,8,<