我发现我的算法总是会n!*4^n
步。我想知道它的复杂性是O(n!*4^n)
还是其他的?感谢。
答案 0 :(得分:3)
如果您确定自己的算法会执行总是 n!⋅4ⁿ
步骤,那么它就是O(n!⋅4ⁿ)
,而且只有Θ(n!⋅4ⁿ)
,而且它是{ {1}}。
答案 1 :(得分:3)
它是Θ(n!⋅4ⁿ)
,因为Θ
是O
的下限,所以O(n!⋅4ⁿ)
也是Ω(n!⋅4ⁿ)
。
重要的是你在步骤中做了什么?如果每个步骤都是O(1)这个符号保持不变,但在其他情况下,它取决于你的步骤,我建议告诉我们你的功能,看看步骤是什么。
为什么你不能说它是O(n!)
?因为你找不到常数c
:
n!·4ⁿ≤c⋅n!,对于n> Ñ<子> 0 子>
因为当c
(例如当4ⁿ > c
)上面的不等式错误时,任何常数n ≥ c
。
答案 2 :(得分:1)
如果它确实完全 n!*4^n
步骤,那么就没有必要使用大字符。
是的,这意味着它有O(n!*4^n)
复杂性。