我遇到了在解决复发问题时忽略地板和天花板的地方。
来自CLRS 的示例(第4章,第83页),其中楼层被忽略:
Here(第2页,练习4.1-1 )是忽略上限的示例: (编辑:我从公众舆论中得知这有点可疑。)
事实上,在CLRS( pg.88 )中,它提到:
“地板和天花板在解决复发时通常无关紧要”
我的问题:
注意:这不是作业问题。当我刷新我的DS和算法概念时,我想到了它。
答案 0 :(得分:10)
地板和天花板功能满足所有 x 的以下不等式:
x -1< ⌊ x ⌋≤ x
x ≤⌈ x ⌉< X 的1
因此,在第一示例中,我们有⌊名词的/2⌋≤名词的/ 2。此外,因为对数是单调递增函数,我们知道lg⌊ n /2⌋≤lg( n / 2)。将这些一起,我们得到第一不等式2( C 的⌊名词的/2⌋LG⌊名词的/2⌋)+ 名词≤ cn lg( n / 2)+ n 。
第二个例子实际上包含一个错误: c lg⌈ n /2⌉+ 1从不小于但可以等于 c lg( n / 2)+ 1.然而, 为真 c lg⌈ n / 2 ⌉+ 1≤ C 的LG(名词的/ 2 + 1)+ 1,我们可以然后从上面的约束,也就是说, C 的LG ( n / 2)+ 2(假设 n ≥2)从而得出 T ( n )∈ O (lg n )。
实际上,第二个例子也包含其他错误:即使使用以下段落中所述的假设(您没有引用),最后一个符号也应该是≤。
(Ps.Phew,如果没有LaTeX,这是一个真正的痛苦。如果没有别的话,为什么math.SE会更好地询问这些问题。)
答案 1 :(得分:5)
您的两个示例都可以通过主定理进行分析。 Akra–Bazzi theorem推广了主定理并给出了可以忽略小扰动的充分条件(扰动h(x)是O(x / log 2 x))。对于Akra-Bazzi可分析的整数索引重复,您可以忽略地板和天花板始终,因为它们的扰动最多为1。
在算法和数据结构的背景下,Akra-Bazzi未涵盖的每一次重复都是非常奇特的。