What is the difference between Θ(n) and O(n)?

后端 未结 9 1228

Sometimes I see Θ(n) with the strange Θ symbol with something in the middle of it, and sometimes just O(n). Is it just laziness of typing because nobody knows how to type th

9条回答
  •  南旧
    南旧 (楼主)
    2020-11-22 05:07

    Using limits

    Let's consider f(n) > 0 and g(n) > 0 for all n. It's ok to consider this, because the fastest real algorithm has at least one operation and completes its execution after the start. This will simplify the calculus, because we can use the value (f(n)) instead of the absolute value (|f(n)|).

    1. f(n) = O(g(n))

      General:

                f(n)     
      0 ≤ lim ──────── < ∞
          n➜∞   g(n)
      

      For g(n) = n:

                f(n)     
      0 ≤ lim ──────── < ∞
          n➜∞    n
      

      Examples:

          Expression               Value of the limit
      ------------------------------------------------
      n        = O(n)                      1
      1/2*n    = O(n)                     1/2
      2*n      = O(n)                      2
      n+log(n) = O(n)                      1
      n        = O(n*log(n))               0
      n        = O(n²)                     0
      n        = O(nⁿ)                     0
      

      Counterexamples:

          Expression                Value of the limit
      -------------------------------------------------
      n        ≠ O(log(n))                 ∞
      1/2*n    ≠ O(sqrt(n))                ∞
      2*n      ≠ O(1)                      ∞
      n+log(n) ≠ O(log(n))                 ∞
      
    2. f(n) = Θ(g(n))

      General:

                f(n)     
      0 < lim ──────── < ∞
          n➜∞   g(n)
      

      For g(n) = n:

                f(n)     
      0 < lim ──────── < ∞
          n➜∞    n
      

      Examples:

          Expression               Value of the limit
      ------------------------------------------------
      n        = Θ(n)                      1
      1/2*n    = Θ(n)                     1/2
      2*n      = Θ(n)                      2
      n+log(n) = Θ(n)                      1
      

      Counterexamples:

          Expression                Value of the limit
      -------------------------------------------------
      n        ≠ Θ(log(n))                 ∞
      1/2*n    ≠ Θ(sqrt(n))                ∞
      2*n      ≠ Θ(1)                      ∞
      n+log(n) ≠ Θ(log(n))                 ∞
      n        ≠ Θ(n*log(n))               0
      n        ≠ Θ(n²)                     0
      n        ≠ Θ(nⁿ)                     0
      

提交回复
热议问题