Math.sqrt Java的时间复杂度

时间:2015-03-02 16:57:33

标签: java time-complexity

Java中math.sqrt实现的时间复杂度是多少? Java在某些技术中实现了时间复杂性,我试图确定时间复杂度。

2 个答案:

答案 0 :(得分:3)

在大多数情况下,Java会尝试使用"智能电源"算法,导致时间复杂度为O(log n)。 Smart power Algorithm

此外,似乎在不同的情况下,你可能会遇到不同的复杂性; Why is multiplied many times faster than taking the square root?

答案 1 :(得分:0)

看起来它是通过委托给作为本机方法的sqrt方法StrictMath来实现的。

因此,答案似乎是特定于实现的。

严格来说是O(1)。理论上(但显然不是练习),我们可以遍历所有双打并找到最长时间。

此外,Math.sqrt(n)的时间复杂度不直接取决于n,而是取决于表示n所需的空间量,对于双精度应该是常数。