后缀托盘与后缀三叉树:用于更快文本索引的结构
数据结构与算法
2013-11-08 v1
摘要
后缀树和后缀数组是两种最广泛用于文本索引的数据结构。两者均使用线性空间,并且对于多项式大小的字母表,均可在线性时间内构建。然而,在回答具有最坏情况确定性时间界限的查询时,前者耗时 ,其中 为查询大小, 为字母表大小;而后者耗时 ,其中 为文本大小。若需输出查询的所有出现位置,增加 的时间开销即已足够,其中 为输出大小。我们提出了一种将两者结合的新方法,称之为后缀托盘(suffix tray)。其空间和构建时间保持线性,而对于来自线性范围的整数字母表(即 ,其中 为任意常数),查询时间改进为 。构建和查询过程均为确定性的。在此情况下,若需输出查询的所有出现位置,同样只需增加 的时间开销。我们还考虑了索引的在线版本,其中文本在线逐个字符到达,并同步回答索引查询。在此变体中,我们创建了一种后缀树与后缀列表(后缀数组的动态变体)的混合结构,称为后缀三叉树(suffix trist);它支持在 时间内进行查询。后缀三叉树也使用线性空间。此外,如果存在一种线性空间后缀树的在线构建方法,使得添加一个字符的最坏情况确定性代价为 ( 为当前文本大小),则可以在 时间内进一步更新后缀三叉树。目前已知的 最佳最坏情况确定性界限为 时间。
引用
@article{arxiv.1311.1762,
title = {Suffix Trays and Suffix Trists: Structures for Faster Text Indexing},
author = {Richard Cole and Tsvi Kopelowitz and Moshe Lewenstein},
journal= {arXiv preprint arXiv:1311.1762},
year = {2013}
}
备注
Results from this paper have appeared as an extended abstract in ICALP 2006