中文

m-Bonsai:一种实用的紧凑动态字典树

数据结构与算法 2017-04-20 v1

摘要

我们考虑实现一个空间高效的动态字典树(trie)问题,重点关注良好的实际性能。对于一个具有nn个节点、字母表大小为σ\sigma的字典树,信息论下界为nlogσ+O(n)n \log \sigma + O(n)比特。Bonsai数据结构是由Darragh等人提出的一种紧凑字典树(Softw., Pract. Exper. 23(3), 1993, p. 277-291)。其缺点包括:用户必须预先指定字典树大小的上界MM(初始化后不易更改),空间使用为Mlogσ+O(MloglogM)M \log \sigma + O(M \log \log M)(对于较小的σ\sigmanMn \ll M时渐近非最优),以及不支持删除操作。它支持基于哈希函数行为假设的O(1/ϵ)O(1/\epsilon)期望时间遍历和更新操作,其中ϵ=(Mn)/M\epsilon = (M-n)/M,且在实践中具有优异的速度性能。我们提出了一种替代方案m-Bonsai,解决了上述问题,获得了一种期望空间使用为(1+β)n(logσ+O(1))(1+\beta) n (\log \sigma + O(1))比特的字典树,并支持基于哈希函数行为假设的O(1/β)O(1/\beta)期望时间和O(1/β2)O(1/\beta^2)摊销期望时间的遍历和更新操作,其中β>0\beta > 0为用户指定参数。我们给出了m-Bonsai的实现,其使用的内存显著减少,且比原始Bonsai略快。

关键词

引用

@article{arxiv.1704.05682,
  title  = {m-Bonsai: a Practical Compact Dynamic Trie},
  author = {Andreas Poyias and Simon J. Puglisi and Rajeev Raman},
  journal= {arXiv preprint arXiv:1704.05682},
  year   = {2017}
}

备注

Journal version of SPIRE 2015 paper by Poyias and Raman