In-Place Sparse Suffix Sorting
Abstract
Suffix arrays encode the lexicographical order of all suffixes of a text and are often combined with the Longest Common Prefix array (LCP) to simulate navigational queries on the suffix tree in reduced space. In space-critical applications such as sparse and compressed text indexing, only information regarding the lexicographical order of a size- subset of all text suffixes is often needed. Such information can be stored space-efficiently (in words) in the sparse suffix array (SSA). The SSA and its relative sparse LCP array (SLCP) can be used as a space-efficient substitute of the sparse suffix tree. Very recently, Gawrychowski and Kociumaka [SODA 2017] showed that the sparse suffix tree (and therefore SSA and SLCP) can be built in asymptotically optimal space with a Monte Carlo algorithm running in time. The main reason for using the SSA and SLCP arrays in place of the sparse suffix tree is, however, their reduced space of words each. This leads naturally to the quest for in-place algorithms building these arrays. Franceschini and Muthukrishnan [ICALP 2007] showed that the full suffix array can be built in-place and in optimal running time. On the other hand, finding sub-quadratic in-place algorithms for building the SSA and SLCP for \emph{general} subsets of suffixes has been an elusive task for decades. In this paper, we give the first solution to this problem. We provide the first in-place algorithm building the full LCP array in expected time and the first Monte Carlo in-place algorithms building the SSA and SLCP in expected time. We moreover describe the first in-place solution for the suffix selection problem: to compute the -th smallest text suffix.
Keywords
Cite
@article{arxiv.1608.05100,
title = {In-Place Sparse Suffix Sorting},
author = {Nicola Prezza},
journal= {arXiv preprint arXiv:1608.05100},
year = {2017}
}
Comments
ACM-SIAM Symposium on Discrete Algorithms 2018; arXiv admin note: text overlap with arXiv:1607.06660 Comment: new style (lipics); using Heath-Brown theorem for number of primes in Z; improved bounds for LCP array computation and sparse suffix sorting; added construction of the LCE structure using radix sort; added reference to lower bound for LCE query times; uploaded version accepted at SODA 2018