【发布时间】:2014-08-10 15:02:24
【问题描述】:
我正在学习算法/big o,我只是对此感到好奇。
使用
mid = (low+high)/2;
为了获得二分搜索算法的中点,通常不鼓励使用,因为可能会出现溢出错误。为什么会导致溢出错误发生,如何
mid = low + (high-low)/2;
防止这个错误?
谢谢。
【问题讨论】:
-
你知道什么是溢出吗? Wikipedia 可能是一个不错的起点。
-
是的,当堆栈太满而无法分配任何数据时。
-
@Hmir 不是这样。这里的词是关于类型溢出而不是堆栈溢出。
-
那是一种形式的溢出(栈溢出)。在您关心 integer overflow 的场景中
-
@clcto 哦,好的,我明白了,谢谢。
标签: java algorithm binary-search