一、二分查找的变形问题

image.png

变体一:查找第一个值等于给定值的元素

对于我们做工程开发的人来说,代码易读懂、没 Bug,其实更重要。

变体二:查找最后一个值等于给定值的元素

变体三:查找第一个大于等于给定值的元素

变体四:查找最后一个小于等于给定值的元素

二、小结

变体的二分查找算法写起来非常烧脑,很容易因为细节处理不好而产生 Bug,这些容易出错的细节有:终止条件、区间上下界更新方法、返回值选择。