下面是几个与二分搜索相关的问题:
- 在先升后降的数组中查找 Search for an element in an array which has elements who’s values are first increasing
- 在旋转过的排序数组中查找 Search in a rotated array (这里的方法比geeksforgeeks更简单。)
- 在排序数组中查找某个值出现的次数,元素可以重复出现。
- 查找最近的平方数
- Search Insert Position
- 在旋转过的排序数组中查找一对数的和
如果采用 [l,r] -> [l, m] + [m,r] 的二分搜索区间划分策略,那么 长度为2的区间,即 l+1==r 可以作为base case (就像上面的问题4)
如果采用 [l,r] -> [l, m-1] + [m+1, r ] 的二分搜索区间划分策略,那么 l > r 可以作为 base case (就像普通的二分搜索);或者把 l==r 和 l+1 == r 作为base case (就像上面 问题1)。