用于求解分治法得到的递归关系式。
形如:
其中\(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\)
高深的内容,但于理论方面着实用处很大,受益匪浅。写此笔记顺便练习Markdown...