二分查找变种总结

https://www.cnblogs.com/luoxn28/p/5767571.html

  1. 关于返回left和right。
    如果求满足第一个XXX,返回left
    如果求满足最后一个XXX,返回right
  2. 关于>=和>问题
  • 查找最后一个小于等于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;
原文地址:https://www.cnblogs.com/a1225234/p/11017440.html