概念
- 二分查找针对的是一个有序集合,查找思想类似分治思想。
- 每次都通过跟区间的中间元素对比,将待查找的区间缩小为原来的一半,直到找到要查找的元素,或者区间被缩小为0。
- 适合处理静态数据,也就是没有频繁插入。删除的数据。
编写代码要点
- 关注循环退出条件。
- 关注mid的取值。
- 关注low和high的更新。
应用
- 二分查找只能用在数据是通过顺序表(数组)来存储的数据结构上。
- 二分查找针对的是有序数据,如果数据是无序的,需要先排序。
- 数据量太小不适合二分查找,直接顺序遍历即可。
- 数据量太大也不能用二分查找。
4个常见变形问题
- 查找第一个值等于给定值的元素。
- 查找最后一个值等于给定值的元素。
- 查找第一个大于等于给定值的元素。
- 查找最后一个小于等于给定值的元素。
变形问题出错要点
- 终止条件
- 区间上下界更新方法
- 返回值选择








网友评论