在二进制搜索中计算中点索引

用户名

因此,mid二进制搜索中正确的计算方式mid = low + ((high - low) / 2)为了处理溢出错误。

我的实现使用无符号的64位变量,而且我从未见过我的数组过大而导致溢出的情况。我仍然需要使用上述实现还是可以使用mid = (low + high) / 2

这里的最佳做法是什么?

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

如果没有溢出的可能性,那么从技术上讲,就不需要使用溢出安全的中点计算方法:可以根据需要使用不安全的公式。但是,如果您的程序有一天被修改而违反了您的假设,则无论如何都应将其保留在那里。我认为,添加一条CPU指令使您的代码永不过时,这是对代码可维护性的一项重大投资。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章