gpt4 book ai didi

java - 中点公式溢出错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:36 25 4
gpt4 key购买 nike

我正在学习算法/big o,我只是对此感到好奇。

使用

 mid = (low+high)/2;

为了获得中点,通常不鼓励使用二分查找算法,因为可能会出现溢出错误。为什么会出现溢出错误,怎么办

 mid = low + (high-low)/2;

防止这个错误?

谢谢。

最佳答案

在第一种情况下,如果 low 和 high 都足够大(比如两者都等于 2^30+1/或什至更大/)。在第二种情况下,你不计算 (low+high),你做了一个小技巧,然后遍历表达式 (high-low) 并且该表达式相对于 int 溢出要安全得多。

不过,如果你没有一个大小大于 2^30 的数组(无论如何这是一个相当大的数组),即使使用第一个表达式,我也看不出你怎么会遇到 int 溢出.所以在大多数情况下我只会使用第一个而不用担心。

关于java - 中点公式溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com