同样是基于有序数据的二分查找,但是当数据中存在相同数据的时候,用上一版的二分查找找到的索引可能不是你想要的,所以存在以下二分查找的四类变形:
- 查找第一个等于给定值的索引
- 查找最后一个等于给定值的索引
- 查找第一个大于等于给定值的索引
- 查找最后一个小于等于给定值的索引
查找第一个等于给定值的索引
1 | def main(arr, value): |
查找最后一个等于给定值的索引
1 | def main(arr, value): |
查找第一个大于等于给定值的索引
1 | def main(arr, value): |
查找最后一个小于等于给定值的索引
1 | def main(arr, value): |