在复杂度问题上卡住了。
我有一个运行时间为 O(lg(n))
的循环。我还有另一个嵌套在其中的循环,也是 O(lg(n))
,因此整个复杂度为 O(lg(n)) * O(lg(n))
或者 O(lg(n)2)。我能否说最终的复杂度为 O(lg(n))
,因为 n 是 2 的幂次方,所以
O(lg(n)) * O(lg(n)) = O(lg(n2))=O(2lg(n))=O(lg(n))
或者不能这样使用?
在复杂度问题上卡住了。
我有一个运行时间为 O(lg(n))
的循环。我还有另一个嵌套在其中的循环,也是 O(lg(n))
,因此整个复杂度为 O(lg(n)) * O(lg(n))
或者 O(lg(n)2)。我能否说最终的复杂度为 O(lg(n))
,因为 n 是 2 的幂次方,所以
O(lg(n)) * O(lg(n)) = O(lg(n2))=O(2lg(n))=O(lg(n))
或者不能这样使用?
不,你不能这样做!因为这个原因:
O(lg(n)) * O(lg(n)) = O(lg(n2))
是不正确的。尽管其余部分是正确的,所以你的循环仍然是O(lg(n)2)