English

A Self-Index on Block Trees

Data Structures and Algorithms 2017-10-11 v4

Abstract

The Block Tree is a recently proposed data structure that reaches compression close to Lempel-Ziv while supporting efficient direct access to text substrings. In this paper we show how a self-index can be built on top of a Block Tree so that it provides efficient pattern searches while using space proportional to that of the original data structure. More precisely, if a Lempel-Ziv parse cuts a text of length nn into zz non-overlapping phrases, then our index uses O(zlog(n/z))O(z\log(n/z)) words and finds the occocc occurrences of a pattern of length mm in time O(mlogn+occlogϵn)O(m\log n+occ\log^\epsilon n) for any constant ϵ>0\epsilon>0.

Keywords

Cite

@article{arxiv.1606.06617,
  title  = {A Self-Index on Block Trees},
  author = {Gonzalo Navarro},
  journal= {arXiv preprint arXiv:1606.06617},
  year   = {2017}
}

Comments

Version 3 is the final SPIRE 2017 version. Version 4 corrects some errors and typos, the important one about what is inserted in the grid. It also improves the time when O(w) space can be used

R2 v1 2026-06-22T14:30:37.338Z