我怎样才能计算复杂性

时间:2011-10-25 17:44:05

标签: algorithm complexity-theory big-o

我发现我的算法总是会n!*4^n步。我想知道它的复杂性是O(n!*4^n)还是其他的?感谢。

3 个答案:

答案 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)复杂性。