Closed. This question needs details or clarity. It is not currently accepting answers. Learn more
想改进这个问题吗?添加细节并通过editing this post澄清问题。
我在堆栈溢出上看到同一个问题3次:
Complexity of an algorithm
Time complexity for two pieces of code
Tricky Big-O complexity
我想问其中一个问题,但我不能,因为我是新的网站,不能评论。
有人能给我解释一下为什么复杂性是O(LogM+Logn)而不是O(LogM*Logn)?
我试着自己解决,O(logm*logn)对我来说更有意义……因为举例来说,如果你用n=16和m=1000运行它,那么你得到大约6+4…更有意义的是它将运行6*4次。。。
你能帮我澄清一下吗?谢谢:)

最佳答案

while循环在O(logm)中运行,其中日志的基数为3,while循环之后,外部for循环运行的次数恒定因为它在O(1)中运行,所以外部for循环可以被引入(复杂性意味着忽略常数和研究增长,而不是算法执行的步骤数)。该算法具有O(LogM+Logn)复杂性,因为首先在O(Logm)中有while,然后在O(Logn)中(Ondo-NAT具有在其内部乘以它们)。

10-06 03:37