一: 二分查找官方思想是在顺序存储结构有序的情况下(有序的数组),可以使用二分查找,但是 我们的思想是:只要可以通过正确逻辑,用二分思想正确的缩小查找范围,都称之为二分。
二分法共有三个模板
模板一:
模板二:
模板三:
模板一就是在while循环中去寻找目标值,而模板二三则是在循环结束,left和right落在的最后一个位置,然后再去判断是否为我们想找的值。
模板一中的while循环有等于,而模板二和三循环没有等于
模板二和模板三的区别在于:模板二取中间值是向下取整,从左边开始寻找,而模板三取中间值是向上取整,从右边查找。模板二向下取整,那么left要移动就要left = mid+1而不是left = mid ,right= mid 不变 。模板三向上取整,right = mid -1 而不是 right