文本LPF表计算与k - 树距离分布研究
在文本处理和图论研究中,有两个重要的问题值得深入探讨,一是文本最长前因子(LPF)表的计算,二是k - 树中顶点间距离的分布。下面将详细介绍这两方面的内容。
文本LPF表的时间 - 空间最优实现
在计算文本的LPF表时,可以通过一种策略实现仅使用常数额外内存空间,除了文本的后缀数组和LPF表本身。这一策略基于前面提到的栈大小为$O(\sqrt{n})$的特性,使得在LPF表的大部分空间内实现栈操作成为可能。
LPF - optimal算法
该算法的核心步骤如下:
def LPF - optimal(SUF, LCP, n):
# 假设n >= 8
K = int(n - 2 * (2 * n) ** 0.5)
# 接下来三个过程共享同一个LPF表
LPF_on_line(SUF, LCP, K)
LPF_naive(SUF, LCP, K, n)
LPF_anchored(SUF, LCP, K, n)
return LPF
- 参数K的选择 :参数K的选择是为了在LPF数组中留出足够的空间来实现LPF - on - line算法使用的栈。虽然这里没有动态选择K,但实际上可以在LPF - on - line算法执行过程中动态设置K为$n - 2k - 1$,其中k是执行第15行之前栈的大小。这样做可以减少实际运行时间,但不影响其渐近复杂度。
- LPF
超级会员免费看
订阅专栏 解锁全文
4

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



