二分查找
在学习Java的最初阶段,我们应该都写过一个猜数字的小程序,随机生成一个数字,让我们输入来猜,其实里面就用到了二分查找的思想。
二分查找的思想:
- 首先确定该数组的中间下表 mid = (left+right)/2;
- 然后让需要查找的数findVal和arr[mid]比较;
- 若findVal>arr[mid],说明要查找的数在mid的右边,因此需要递归的向右查找;
- 若findVal<arr[mid],说明要查找的数在mid的左边,因此需要递归的向左查找;
- 若findVal==arr[mid],说明要查找的数找到,就返回。
结束递归条件:
- 找到要查找的数,结束递归
- 递归完整个数组,仍然没有找到findVal,也需要结束递归,此时left>right
代码实现:
1 | /** |