Java二分查找代码实现及原理简要分析
代码原理描述
- 前提:已经有一个排好序的数组(否则需要先排序)
- 定义左边界left, 右边界right, 确定搜索范围,循环执行二分查找(第3、4步骤)
- 中间索引的值middle[M] 与带搜索的值T进行比较
- midddle[M] == T 表示找到,返回中间索引
- midddle[M] > T 表示中间值右侧的其他元素都大于T,无须比较,故设置M-1为右边界,重新查找
- midddle[M] < T 表示中间值左侧侧的其他元素都小于T,无须比较,故设置+1为左边界,重新查找
- 当left > right 时,表示没有找到,返回-1