比较复杂性

时间:2015-03-15 14:15:48

标签: big-o complexity-theory little-o

我有三个问题需要进行考试复习:

  1. 如果f(n) = 2n - 3提供两个不同的函数g(n)h(n)(因此g(n)不等于h(n)),f(n) = O(g(n))和{ {1}}
  2. 现在再次使用函数f(n) = O(h(n))g'(n)执行相同操作,但这次函数应该是格式 h'(n)g'(n) = Ɵ(f(n))
  3. 是否可以使用f(n) = o(h'(n))f(n) = O(g(n))
  4. 我知道一个函数是另一个函数的f(n) = Ω(g(n)),如果它小于或等于另一个函数。所以我认为1.可以是O(n)g(n) = 2n²-3

    我也知道,如果函数基本上等于另一个函数(我们可以忽略常量),则函数是h(n) = 2n²-10,而Ɵ(n)如果它只是小于函数,那么对于2.我想你可以o(n)g'(n) = 2n-15

    至3:函数可能同时为h'(n) = 2nO(n),因为Ω(n)O(n)允许函数与给定的函数相同函数,因此您可以使函数Ω(n)等于g(n),并且满足同时为f(n)O的规则。

    有人可以告诉我这是否正确?

1 个答案:

答案 0 :(得分:0)

你的回答大多正确。但我想补充一点:

鉴于是f(n) = 2n - 3

  1. g(n) = 2n²-3h(n) = 2n²-10 f(n)位于O(g(n))O(h(n))。但是你的g(n)和h(n)基本相同,至少它们都在Θ(n²)。还有许多其他功能也可以使用。 E.g。

    • f(n) ∈ O(n) ⇒ g(n) = n
    • f(n) ∈ O(nk) ⇒ g(n) = nk ∀ k ≥ 1
    • f(n) ∈ O(2ⁿ) ⇒ g(n) = 2ⁿ
  2. 如果我们考虑复杂性,
  3. g'(n) = 2n-15会缩减为g'(n) = n,这是正确的。事实上,这是唯一可能的答案 但f(n) ∈ o(h'(n))不适用于h'(n) = 2n。小o意味着

    limn → ∞ | f(n)/g(n) | = 0           ⇔           f(n) ∈ o(g(n))
    

    因此,您可以为常量h'(n) = n²选择h'(n) = nk ∀ k > 1或更一般的h'(n) = cⁿc > 1

  4. 是的,您可以将其作为Θ(g(n))的定义:
    f(n) ∈ Θ(g(n))        ⇔      f(n) ∈ O(g(n))    and    f(n) ∈ Ω(g(n))