Tips一个二分查找要注意的东西

41次阅读

共计 313 个字符,预计需要花费 1 分钟才能阅读完成。

二分查找的方法想必大家都耳熟能详,今天想说一下我们在写代码的时候比较容易忽略的小细节。
int mid = (low + high)/2;
int mid = low/2 + high/2;
int mid = low + (high - low)/2;
可以想一下这三种方式有什么不同?
首先看第一个:
这里面隐藏了一个可能出现的问题就是,当我们的 low 和 high 比较大时,二者相加可能已经超过 int 的取值范围了,因为这种写法并不是一个好的写法。
其次:
这种写法更不可取了,举个例子吧:low = 3,high = 5。那么 mid 应为 4,但是用上面这种写法之后 mid 可就大错特错了。
因此,我们平常写的时候应该尽量使用第三种写法,而且这种写法的形式和插值查找的 mid 比较相似。

正文完
 0