二分查找变种总结
https://www.cnblogs.com/luoxn28/p/5767571.html
- 关于返回left和right。
如果求满足第一个XXX,返回left
如果求满足最后一个XXX,返回right - 关于>=和>问题
- 查找最后一个小于等于key的元素 array[mid] > key : right = mid -1 return right
- 查找最后一个小于key的元素 array[mid] >= key : right = mid-1 return right
- 查找第一个大于key的元素 array[mid] > key : right = mid -1 return left
- 查找第一个大于等于key的元素 array[mid] >= key :right = mid -1 return left
- 查找第一个等于key的元素 array[mid] >= key : right = mid- 1 return left
- 查找最后一个等于key的元素 array[mid] < key : left = mid +1 return right;