其他分享
首页 > 其他分享> > 重修 主定理(Master Theorem)

重修 主定理(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