java - O(log(n)) 和 O(n) 有什么区别或分开?

标签 java big-o

这是我得到的代码,但我无法确定它是 O(log(n)) 还是 O(n)。

int i=n;
while (i > 0) {  
   i/=2;  
}     

最佳答案

让我们假设n = 1000

需要多少次迭代才能达到 i = 0

每次除以 2,我们将得到下表:

Iteration |   i
----------|--------
    0     |  1000
    1     |  500
    2     |  250
   ...    |  ...
   ...    |  ...
    10    |   0  <-- Here we stop

这可以帮助您弄清楚复杂性吗? (它应该 - 提示:什么是 ~log(1000) 以及 O(n) 是什么意思?)

关于java - O(log(n)) 和 O(n) 有什么区别或分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17080754/

相关文章:

Java Ant build.xml 问题

java - 解析xml stax文件中的特殊字符

java - 如何在大型软件系统中进行调试?

algorithm - 算法的增长函数?

java - 从对象映射到动态字符串

java - Python 套接字从 Java PrintWriter 套接字接收不完整的消息

time-complexity - 对于时间复杂度 - 指数情况,Big O 中可以忽略哪些常量?

algorithm - 如何计算一段代码的每一行的运行时间

algorithm - 动态规划文本对齐的时间复杂度

java - 如何判断给定函数是否是 O(n)?