二分查找的时候在有些情况下是下面这样的
while(left <= right)
还有一种情况下是这样的
while(left < right)
那么这两种具体有什么不同的呢?
简单来说,当left <= right时,是查找单一固定的值,这就会出现left = right的的情况,这种情况已经二分查找完毕了,但有可能出现最后但那个值不是我们想要的值的情况,这个时候需要退出
而left < right,是查找符合条件的值,出现当left = right时,不管这个值是多少,它已经符合我们预设的条件了,所以一定会返回
一句话总结,任何符合条件的值都可以时,我们用left < right;需要查找某一个确定的值时用left <= right
