我一直在阅读Cormen等人的算法简介。并且我正在阅读从第73页开始的Master定理的陈述。在情况3中,使用定理还需要满足一个正则条件:
... 3.如果
对于一些恒定,如果
[ 这是规律性条件 ]
对于某些常数以及对于所有足够大的,则..Ñ
有人可以告诉我为什么需要规律性条件吗?如果不满足条件,定理将如何失败?
您能写出案件是什么情况以及监管条件是什么?
我一直在阅读Cormen等人的算法简介。并且我正在阅读从第73页开始的Master定理的陈述。在情况3中,使用定理还需要满足一个正则条件:
... 3.如果
对于一些恒定,如果
[ 这是规律性条件 ]
对于某些常数以及对于所有足够大的,则..Ñ
有人可以告诉我为什么需要规律性条件吗?如果不满足条件,定理将如何失败?
Answers:
不是严格的证明,而是“从头到顶”的解释。
假设递归是一棵树。第三种情况涉及根节点渐近地支配运行时间的场景,即,大部分工作是在递归树顶部的小节点上完成的。那么运行时间为。Θ (f (n ))
为了确保根目录实际上可以完成更多工作,您需要
。
这表示(在根中完成的工作量)至少必须与在较低级别中完成的工作之和一样大。(递归在输入的上被调用。)a n / b
例如,对于递归,在根下方的水平上的功是根的四分之一,并且只进行了两次而不是因此根占主导地位。
但是,如果函数不满足规则性条件怎么办?例如而不是?然后,在较低级别完成的工作可能会比在根目录中完成的工作更大,因此您不确定根目录是否占主导地位。
令和b = 2,使得 T (2 n)= n ∑ k = 0 f (2 k)。 对于情况3应用,我们需要˚F (Ñ )= Ω (Ñ ε)(对于某些ε > 0)和正则条件,˚F (Ñ / 2 )≤ (1 - δ )˚F
有一个更通用的定理Akra-Bazzi,其中将规律性条件替换为结果中所含的明确量。