MASTER THEOREM
求解有特定格式的递归函数的上界O(g(n))O(g(n))O(g(n))
适用的递归式如下
T(n)=aT(n/b)+f(n),where a≥1,b>1, and f(n) is asymptotically function such as n,n2....(a≥1,b>1,且f(n)是一个渐进函数,如n,n2...)T(n) = aT(n/b) + f(n), \\ where\ a \geq 1,b>1,\ and\ f(n)\ is\ asymptotically\ function\ such\ as\ n, n^2.... \\ (a \geq 1, b>1, 且f(n)是一个渐进函数,如n, n^2...)T(n)=aT(n/b)+f(n),where a≥1,b>1, and f(n) is asymptotically function such as n,n2....(a≥1,b>1,且f(n)是一个渐进函数,如n,n2...)
将f(n)f(n)f(n)与nlogban^{ log _b a}nlogba进行比较
- 对于某个常数ε>0\varepsilon>0ε>0,有f(n)=O(nlogba−ε)f(n)=O(n^{log_ba-\varepsilon})f(n)=O(nlogba−ε),即f(n)f(n)f(n)增长速率比nlogban^{ log _b a}nlogba小
则有:
T(n)=Θ(nlogba)T(n)=\Theta(n^{ log _b a})T(n)=Θ(nlogba)
-
对于某个常数k≥0k\geq0k≥0,有f(n)=O(nlogba⋅lgkn)f(n)=O(n^{log_ba} \cdot lg^kn)f(n)=O(nlogba⋅lgkn),即f(n)f(n)f(n)增长速率与nlogban^{ log _b a}nlogba相当
则有:
T(n)=Θ(nlogba⋅lgk+1n)T(n)=\Theta(n^{ log _b a} \cdot lg^{k+1} n)T(n)=Θ(nlogba⋅lgk+1n) -
对于某个常数ε>0\varepsilon>0ε>0,有f(n)=O(nlogba+ε)f(n)=O(n^{log_ba + \varepsilon})f(n)=O(nlogba+ε),即f(n)f(n)f(n)增长速率比nlogban^{ log _b a}nlogba大
则有:
T(n)=O(f(n))T(n)=O(f(n))T(n)=O(f(n))
DFS
可以应用于表示图的数据结构
邻接矩阵: Θ(∣V∣2)\Theta(|V|^2)Θ(∣V∣2)
邻接链表: Θ(∣V∣+∣E∣)\Theta(|V|+|E|)Θ(∣V∣+∣E∣)
其他 … …
应用
检查图的连通性
找最大连通子图
判断图是否有环
找强连通子图
其他 … …