Main theorem (general formula)

The Master Theorem is an important tool for analyzing the time complexity of recursive algorithms. It is applicable to a class of formally defined recursive relations, where a divide-and-conquer strategy is usually used to solve the problem.

Limitations of the simplified version of the main theorem

Three cases of the simplified version of the main theorem:

  1. I F IF IF f ( n ) = O ( n l o g b ( a − ε ) ) f(n) = O(n^ {log_b (a - e)}) f(n)=O(nlogb(aε)),and ε > 0 ε > 0 e>0,Then T ( n ) = Θ ( n l o g b ( a ) ) T(n) = Θ(n^{log_b(a)}) T(n)=Θ(nlogb(a))
  2. I F IFIF f ( n ) = Θ ( n l o g b ( a ) ⋅ l o g k n ) f(n) = Θ(n^{log_b (a)} ·log^k n) f(n)=Θ(nlogb(a)logkn),and k ≥ 0 k ≥ 0 k0,Then T ( n ) = Θ ( n l o g b ( a ) ⋅ l o g k + 1 n ) T(n) = Θ(n^{log_b(a)} · log^{k+1} n) T(n)=Θ(nlogb(a)logk+1n)
  3. I F IFIF f ( n ) = Ω ( n l o g b ( a + ε ) ) f(n) = Ω(n^{log_b (a + e)}) f(n)=Ω(nlogb(a+ε)),and ε > 0 ε > 0 e>0 a ⋅ f ( n b ) ≤ c ⋅ f ( n ) a · f(\frac{n}{b}) ≤ c · f(n) af(bn)cf(n) A certain constant < /span> c < 1 c < 1 c<1 和own Foothold n n n 成立,Then T ( n ) = Θ ( f ( n ) ) T(n) = Θ(f(n)) T(n)=Θ(f(n))

The simplified form has certain restrictions. For example, the form must be: T ( n ) = a ⋅ T ( n b ) + f ( n ) T(n)=a ·T(\frac{n}{b})+f(n) T(n)=aT(bn)+f(n)

并且 f ( n ) = n c f(n) = n^{c} f(n)=nc

Three counterexamples:

  1. The number of subproblems is not constant

T ( n ) = n ⋅ T ( n 2 ) + n 2 T(n)=n \cdot T(\frac{n}{2})+n^{2} T(n)=nT(2n)+n2

  1. The number of sub-problems is less than 1

T ( n ) = 1 2 T ( n 2 ) + n 2 T(n)=\frac{1}{2}T(\frac{n}{2})+n^{2} T(n)=21T(2n)+n2

  1. The time to decompose the problem and merge the solutions is not n c n^{c} nc

T ( n ) = 2 T ( n 2 ) + n l o g n T(n)=2T(\frac{n}{2})+nlogn T(n)=2T(2n)+nlogn


General form of the main theorem

T ( n ) = a ⋅ T ( n b ) + f ( n ) , a > 0 , b > 1 T(n)=a·T(\frac{n}{b})+f(n),a>0,b>1 T(n)=aT(bn)+f(n),a>0,b>1

  1. I F IF IF ∃ ε > 0 \exists ε > 0 ε>0 Differentiation f ( n ) = O ( n log b ( a − ε ) ) f(n) = O(n^ {log_b (a - ε)}) f(n)=O(nlogb(aε)) ,Then T ( n ) = Θ ( n l o g b ( a ) ) T(n) = Θ(n^{log_b(a)}) T(n)=Θ(nlogb(a))
  2. I F IFIF ∃ k ≥ 0 \exists k ≥ 0 k0 so that f ( n ) = Θ ( n l o g b ( a ) ⋅ l o g k n ) f(n) = Θ(n^{log_b (a)} ·log^k n) f(n)=Θ(nlogb(a)logkn),Then T ( n ) = Θ ( n l o g b ( a ) ⋅ l o g k + 1 n ) T(n) = Θ(n^{log_b(a)} · log^{k+1} n) T(n)=Θ(nlogb(a)logk+1n)
  3. I F IFIF ∃ ε > 0 \exists ε > 0 ε>0 so that f ( n ) = Ω ( n l o g b ( a + ε ) ) f(n) = Ω(n^{log_b (a + e)}) f(n)=Ω(nlogb(a+ε) )
    且对于certain constant c < 1 c < 1 c<1 和own Foothold n n n a ⋅ f ( n b ) ≤ c ⋅ f ( n ) a · f(\frac{n}{b}) ≤ c · f(n) af(bn)cf(n) ,Then T ( n ) = Θ ( f ( n ) ) T(n) = Θ(f(n)) T(n)=Θ(f(n))

Main considerations Function n l o g b a n^{log_{b}{a}} nlogba given f ( n ) f(n) f(n)'s growth rate system< /span>

Context 1: n l o g b a n^{log_{b}{a}} nlogba f ( n ) f(n) f(n) Increased pleasure

T ( n ) = 9 T ( n 3 ) + n T(n)=9T(\frac{n}{3})+n T(n)=9T(3n)+n

  • n l o g b a = n 2 n^{log_{b}{a}}=n^{2} nlogba=n2,
  • f ( n ) = n = O ( n 2 − ϵ ) , ϵ ≤ 1 f(n)=n=O(n^{2-\epsilon}),\epsilon \le1f(n)=n=O(n2ϵ),ϵ1
  • ⇒ T ( n ) = O ( n 2 ) \Rightarrow T(n)=O(n^{2}) T(n)=O(n2)

Context 2: n l o g b a n^{log_{b}{a}} nlogba given f ( n ) f(n) f(n) Growth rate similar

T ( n ) = T ( 2 n 3 ) + 1 T(n)=T(\frac{2n}{3})+1 T(n)=T(32n)+1

  • n l o g b a = n l o g 3 / 2 1 = n 0 = 1 n^{log_{b}{a}}=n^{log_{3/2}1}=n^{0}=1 nlogba=nlog3/21=n0=1,
  • f ( n ) = 1 = Θ ( n l o g b a l o g 0 n ) f(n)=1=Θ(n^{log_{b}{a}}log^{0}n)f(n)=1=Θ(nlogbalog0n)
  • ⇒ T ( n ) = O ( l o g n ) \Rightarrow T(n)=O(log n) T(n)=O(logn)

Context 3: n l o g b a n^{log_{b}{a}} nlogba f ( n ) f(n) f(n) Increased arrogance

  • f ( n ) f(n) f(n) n l o g b a n^{log_{b}{a}} nlogba Grow faster, at least faster Θ ( n ϵ ) Θ(n^{\epsilon}) Θ(nϵ) 倍,且 a f ( n b ) ≤ c f ( n ) af(\frac {n}{b}) \le cf(n) af(bn)cf(n)

T ( n ) = 3 T ( n 4 ) + n l o g n T(n)=3T(\frac{n}{4})+nlogn T(n)=3T(4n)+nlogn

  • n l o g b a = n l o g 4 3 = n 0.793 n^{log_{b}{a}}=n^{log_{4}3=n^{0.793}} nlogba=nlog43=n0.793,
  • f ( n ) = n log n = Ω ( n log 4 3 + ϵ ), ϵ ≤ 0.207 f(n)=nlogn=Ω(n^{log_{4}3+\epsilon}),\epsilon \le0.207f(n)=nlogn=Ω(nlog43+ϵ),ϵ0.207
  • a f ( n b ) = 3 ( n 4 ) l o g ( n 4 ) ≤ 3 4 n l o g n = c f ( n ) , c = 3 4 af(\frac{n}{b})=3(\frac{n}{4})log(\frac{n}{4}) \le \frac{3}{4}nlogn=cf(n),c=\frac{3}{4} af(bn)=3(4n)log(4n)43nlogn=cf(n),c=43
  • ⇒ T ( n ) = O ( n l o g n ) \Rightarrow T(n)=O(nlogn) T(n)=O(nlogn)

Cases where the main theorem does not apply

  1. n l o g b a n^{log_{b}{a}} nlogba given f ( n ) f(n) f(n)
  2. n l o g b a n^{log_{b}{a}}nlogba f ( n ) f(n) f(n) Increased pleasure, however Not happy O ( n ϵ ) O(n^{\epsilon}) O(nϵ)
  3. n l o g b a n^{log_{b}{a}}nlogba f ( n ) f(n) f(n) Increased arrogance, however Conceited O ( n ϵ ) O(n^{\epsilon}) O(nϵ)

Guess you like

Origin blog.csdn.net/cold_code486/article/details/134109090