中文

整数字母表下后缀数组与 LCP 数组的最优时空构建

数据结构与算法 2019-07-16 v5

摘要

后缀数组和 LCP 数组是广泛应用于各类字符串处理的最基本的数据结构之一。我们考虑针对整数字母表 [1,,σ][1, \dots, \sigma]1σN1 \leq \sigma \leq N)上长度为 NN 的只读字符串的两个问题,该字符串包含 σ\sigma 个不同字符,问题分别为后缀数组的构建,以及后缀数组与 LCP 数组的同步构建。针对字 RAM 模型,我们提出了使用 O(1)O(1) 额外字在 O(N)O(N) 时间内解决这两个问题的算法,这在时间和空间上均是最优的。额外字是指除输入字符串和输出后缀数组及 LCP 数组所需空间之外的空间。我们的贡献改进了此前最高效的算法,即 [Nong, TOIS 2013] 提出的使用 σ+O(1)\sigma+O(1) 额外字、O(N)O(N) 时间的算法,以及 [Franceschini and Muthukrishnan, ICALP 2007] 提出的使用 O(1)O(1) 额外字、O(NlogN)O(N \log N) 时间的后缀数组构建算法;同时改进了此前通过结合 [Nong, TOIS 2013] 与 [Manzini, SWAT 2004] 实现的、使用 σ+O(1)\sigma + O(1) 额外字、O(N)O(N) 时间同时构建后缀数组与 LCP 数组的最高效解决方案。

关键词

引用

@article{arxiv.1703.01009,
  title  = {Optimal Time and Space Construction of Suffix Arrays and LCP Arrays for Integer Alphabets},
  author = {Keisuke Goto},
  journal= {arXiv preprint arXiv:1703.01009},
  year   = {2019}
}