主定理应试策略
序
主定理是用来分析递归算法复杂度的高效工具。不深究原理,只应试,下面给出应试策略。
策略
主定理形如:
主定理的核心是比较,到底递归到叶子结点的每个基本操作 (
根据二者复杂度的强弱关系,分成三种情况:
基本操作增长(严格)更快, 则最终
;降低规模增长(严格)更快, 则最终
, 但是需要满足一些条件, 否则进入情形 3;二者速度相当, 则最终
, 注意有个 的存在.
其中第 2 点不能一步来判别,还需要验证一个式子
不过没关系,既然分成了三个 case,不妨用排除法,把剩下两种可能都排除掉,就只剩下第 2 种了。
例子
看几个例子。
维基百科
先是维基百科上的。
例 1 - 1
注意到
速度相当,取
例 1 - 2
注意到
基本操作更快,是情形 1,直接
例 1 - 3
注意到
基本操作快,是情形 1,直接
例 1 - 4
注意到
速度相当,
OI-WIKI
再看 OI-WIKI 的几个例子。
例 2 - 1
注意到
f(n) 更慢,要先排除情形 1。然后,情形三能满足吗?
没有这样的
所以
例 2 - 2
注意到
f(n) 更慢,要先排除情形 1。然后,情形三能满足吗?
可以的,
随堂小测
再看课堂上的随堂测试题。
例 3 - 1
注意到
基本操作慢,所以直接
例 3 - 2
注意到
速度相当,所以直接情形 3:
例 3 - 3
注意到
f(n) 更慢,要先排除情形 1。然后,情形 3 能满足吗?
不太行,所以情形 2,
例 3 - 4
注意到
而
可以的,
结语
总结了一些应试技巧,应该能覆盖所有的题目了,目前还没找到 bug。