重修 主定理(Master Theorem)
作者:互联网
介绍
我也不知道为啥叫这个名字。
用于解决分治算法复杂度。
主定理适用于以下形式的递归:
\[T(n)=aT(\frac{n}{b})+f(n) \]其中 \(a\ge 1,b>1\) 为常数,\(f(n)\) 是渐近正函数。
啊啊啊更标准的去看英文版的吧,我这里说人话。
比较 \(X=f(n)\) 和 \(Y=af(\dfrac{n}{b})\) 的大小:
Ⅰ 若两者只差常数(非最高阶系数)
复杂度为 \(f(n)\log n\)。
Ⅱ \(X>Y\)
此时递归复杂度小于单单 \(f(n)\),复杂度为 \(f(n)\)。
Ⅲ \(X<Y\)
此时递归复杂度大于 \(f(n)\),可把 \(f(n)\) 看作 \(1\),相当于遍历一棵树,复杂度为 \(n^{\log_ba}\)(即树的节点数)。
例子
YY1
\[T(n)=3T(\frac{n}{2})+n^2 \\ X=n^2 \\ Y=3(\frac{n}{2})^2=\frac{3}{4}n^2 \\ O(n^2) \]YY2
\[T(n)=4T(\frac{n}{2})+n^2 \\ X=n^2 \\ Y=4(\frac{n}{2})^2=n^2 \\ O(n^2 \log n) \]YY3
\[T(n)=5T(\frac{n}{2})+n^2 \\ X=n^2 \\ Y=5(\frac{n}{2})^2=\frac{5}{4}n^2 \\ O(n^{\log_25}) \]YY4
\[T(n)=2T(\frac{n}{2})+\frac{n}{\log n} \\ \text{Does not apply.} \]YY5
\[T(n)=\frac{1}{2}T(\frac{n}{2})+n \\ \text{Does not apply.} \]YY6
\[T(n)=2T(\frac{n}{2})-n \\ \text{Does not apply.} \]YY7
\[T(n)=T(\frac{n}{2})+n(2−\cos n) \\ \text{Does not apply.} \]二分
\[T(n)=T(\frac{n}{2})+1 \\ X=1,Y=1 \\ O(\log n) \]归并 二维偏序
\[T(n)=2T(\frac{n}{2})+n \\ X=n,Y=n \\ O(n\log n) \]CDQ 三维偏序
\[T(n)=2T(\frac{n}{2})+n\log n \\ X=n\log n \\ Y=2(\frac{n}{2}\log\frac{n}{2})=n\log\frac{n}{2}=n\log n-n\log 2=n\log n \\ O(n\log^2 n) \]多项式求乘法逆
\[T(n)=T(\frac{n}{2})+n\log n \\ X=n\log n \\ Y=\frac{n}{2}\log\frac{n}{2}=\frac{1}{2}n\log n \\ O(n \log n) \]标签:frac,log,text,复杂度,重修,Does,Master,Theorem,apply 来源: https://www.cnblogs.com/zhangshaojia/p/16411620.html