Java中按位与运算符的时间复杂度是多少?

时间:2018-12-27 06:29:39

标签: java operators time-complexity

我想知道什么是Java中的按位运算符和运算符时间复杂度,以及如何使用其他方法(如果有的话)来降低它。 在此先感谢!

3 个答案:

答案 0 :(得分:1)

Java按位运算符对原始操作数进行运算,并且每个运算符都使用一对JVM字节码指令实现。以&为例,这些指令分别是int的{​​{3}}和long的{​​{3}}。 (在JVM中,基本字长为32位,理论上较短的整数类型存储为32位。)JVMS并未指定这些指令的时间复杂度,但是在任何合理的实现中,它们都将使用CPU来实现。按位指令,因此&在任何特定数据类型上的时间都是恒定的,而与操作数的内容无关。

答案 1 :(得分:0)

位运算速度快,可用于优化时间复杂度。一些常见的位运算符是:NOT(〜):按位NOT是一元运算符,它会翻转数字的位,即,如果第i位为0,它将更改为1,反之亦然。按位NOT不是什么,而仅仅是一个数字的补码。

答案 2 :(得分:0)

通常,&操作的时间复杂度为O(n),其中n是32位值或64位值的数量,具体取决于JVM。

对于单个int值,内容无关紧要。

  

10 ^ 5是数组的长度

在这种情况下,时间将与数组的长度成比例。

最快的方法是使用long值并在每个元素中存储64位。

  

用户端没有其他方法可以减少这种操作时间的复杂性吗?

两个int值的&运算是计算机可以执行的最快运算之一,通常需要1个时钟周期,即<< 1 ns。这只是一个问题,如果您要进行很多操作。