专栏文章

主定理的一些特化

算法·理论参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mintrznc
此快照首次捕获于
2025/12/02 08:13
3 个月前
此快照最后确认于
2025/12/02 08:13
3 个月前
查看原文
下文中一切的等号并不意味着完全相等,而是二者量级相同,不会影响证明的结果。

T(n)=2T(n2)+O(n)T(n) = 2T(\frac{n}{2}) + \mathcal{O}(n)
不难发现
T(n)=n×1+n2×2+n4×4++nn×n=n×(1+1++1)=nlogn\begin{aligned} T(n) &= n \times 1 + \frac{n}{2} \times 2 + \frac{n}{4} \times 4 + \ldots + \frac{n}{n} \times n\\ &= n \times (1 + 1 + \ldots + 1)\\ &= n\log n\\ \end{aligned}
T(n)=2T(n2)+O(n2)T(n) = 2T(\frac{n}{2}) + \mathcal{O}(n^2)
不难发现
T(n)=n×1+n2×4+n4×16++nn×n2=n×(1+2+4+n)=n×(2n1)=n2\begin{aligned} T(n) &= n \times 1 + \frac{n}{2} \times 4 + \frac{n}{4} \times 16 + \ldots + \frac{n}{n} \times n^2\\ &= n \times (1 + 2 + 4 + \ldots n)\\ &= n \times (2n - 1)\\ &= n^2\\ \end{aligned}
T(n)=2T(n2)+O(nlogn)T(n) = 2T(\frac{n}{2}) + \mathcal{O}(n\log n)
不难发现
T(n)=n×1log1+n2×2log2+n4×4log4++nn×nlogn=n×(log1+log2+log4++logn)=n×(0+1+2++logn)=n×log2n2=nlog2n\begin{aligned} T(n) &= n \times 1\log 1 + \frac{n}{2} \times 2\log 2 + \frac{n}{4} \times 4\log 4 + \ldots + \frac{n}{n} \times n\log n\\ &= n \times (\log 1 + \log 2 + \log 4 + \ldots + \log n)\\ &= n \times (0 + 1 + 2 + \ldots + \log n)\\ &= n \times \frac{\log^2 n}{2}\\ &= n\log^2n \end{aligned}
我们知道
i=0nik=O(nk+1)\sum_{i = 0}^{n} i^k = \mathcal{O}(n^{k + 1})
于是推广上面结论得到
T(n)=2T(n2)+O(nlogkn)T(n)=O(nlogk+1n)T(n) = 2T(\frac{n}{2}) + \mathcal{O}(n\log^k n) \Rightarrow T(n) = \mathcal{O}(n\log^{k + 1}n)

评论

0 条评论,欢迎与作者交流。

正在加载评论...