主定理(支配理论)学习笔记
用于求解分治法得到的递归关系式。
形如:
\[T(n)=a×T(\frac{n}{b})+f(n)
\]
其中\(a,b\)均为常数。
特殊形式:\(f(n)=O(n^d)\)
则:
若\(d>\log_{b}{a}\) ⇒ \(T(n)=O(n^d)\)
\(d<\log_{b}{a}\) ⇒ \(T(n)=O(n^{\log_{b}{a}})\)
\(d=\log_{b}{a}\) ⇒ \(T(n)=O(n^d·\log_{2}{n})\)
一般:\(f(n)\)为任意形式
则:
若\(f(n)>n^{\log_{b}{a}}\) ⇒ \(T(n)=f(n)\)
\(f(n)<n^{\log_{b}{a}}\) ⇒ \(T(n)=O(n^{\log_{b}{a}})\)
\(f(n)=n^{\log_{b}{a}}\) ⇒ \(T(n)=O(f(n)·\log_{2}{n})\)
例:
①\(T(n)=3×T(\frac{n}{2})+n^2\)
\(a=3\),\(b=2\),\(d=2\) ⇒ \(T(n)=O(n^2)\)
②\(T(n)=16×T(\frac{n}{4})+n\) ⇒ \(T(n)=O(n^2)\)
③\(T(n)=T(\frac{n}{2})+2^n\)
\(f(n)=2^n,n^{\log_{b}{a}}=n^0=1\)
考虑\(n\)很大,\(2^n>1\) ⇒ \(T(n)=2^n\)
高深的内容,但于理论方面着实用处很大,受益匪浅。