Java教程

java用位运算在有序数组中取两个数的中间值

本文主要是介绍java用位运算在有序数组中取两个数的中间值,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

通常情况下,我们取中间值最常用的办法就是 两数相加除以2 也就是

(L + R) / 2

但这样的运算有数值越界的问题。如果 L 与 R 都是int类型,并且都接近int类型的上限,那么相加就有可能越界。

我们可以用这样的方式优化

L + (R - L) / 2

又因为 (R - L) / 2 等同于 (R - L) >>1

所以 去中间值的运算可以是

L + ((R - L) >> 1)
这篇关于java用位运算在有序数组中取两个数的中间值的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!