skyitachi's blog二分法的两种实现 2020-04-14
前言
虽然二分搜索很简单(在无重复的有序数组上),但是也有很多值得注意的地方,而且有两种完全不同的写法(两种完全不同的功能)
lower bound
找出大于等于target的最小数组下标, 不存在的情况下返回-1
1  | func lower_bound(a []int, target int) int {  | 
upper bound
找出小于等于target的最大数组下标
1  | func upper_bound(a []int, target int) int {  | 
注意点
- 计算mid的时候不能发生溢出
 - 数组下标不能越界