均摊复杂度验证与基于属性的测试基础
1. 均摊复杂度验证
1.1 均摊分析
我们对Okasaki的均摊分析进行验证。计时函数 tpart 和 tdm 分别用于统计 partition 和 del min 的调用次数。树的势的定义与伸展树的定义类似。
均摊复杂度的对数界 $A_{p}(t) = t_{part}(p, t) + \Phi(l’) + \Phi(r’) - \Phi(t)$ 通过对 partition(t) 进行计算归纳来证明。若 bsteq(t) 且 partition(p, t) = (l', r') ,则 $A_{p}(t) \leq 2 * \phi(t) + 1$。
Okasaki展示了归纳的之字形(zig - zig)情况,这里我们展示图6中的曲折形(zig - zag)情况。假设递归调用 partition(p, S) = (S1, S2) ,则有:
$A_{p}(A) = A_{p}(S) + 1 + \phi(B’) + \phi(A’) - \phi(B) - \phi(A)$
$\leq 2 * \phi(S) + 2 + \phi(B’) + \phi(A’) - \phi(B) - \phi(A)$(根据归纳假设)
$= 2 + \phi(B’) + \phi(A’)$(因为 $\phi(S) < \phi(B)$ 且 $\phi(S) <
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



