Answers are grounded in this paper and cite their sources.
Suffix trees and suffix arrays are the most prominent full-text indices, and their construction algorithms are well studied. In the literature, the fastest algorithm runs in $O(n)$ time, while it requires O(nlog n)-bit working space, where n denotes the length of the text. On the other hand, the most space-efficient algorithm requires $O(n)$-bit working space while it runs in O(nlog n) time. It was open whether these indices can be constructed in both o(nlog n) time and o(nlog n)-bit working space. This paper breaks the above time-and-space barrier under the unit-cost word RAM. We give an algorithm for constructing the suffix array, which takes $O(n)$ time and $O(n)$-bit working space, for texts with constant-size alphabets. Note that both the time and the space bounds are optimal. For constructing the suffix tree, our algorithm requires O(nlogεn) time and $O(n)$-bit working space for any 0<ε<1. Apart from that, our algorithm can also be adopted to build other existing full-text indices, such as compressed suffix tree, compressed suffix arrays, and FM-index. We also study the general case where the size of the alphabet Σ is not constant. Our algorithm can construct a suffix array and a suffix tree using optimal O(nlog|Σ|)-bit working space while running in O(nloglog|Σ|) time and O(n(logεn+log|Σ|)) time, respectively. These are the first algorithms that achieve o(nlog n) time with optimal working space. Moreover, for the special case where log|Σ|=O((loglog n)1-ε), we can speed up our suffix array construction algorithm to the optimal $O(n)$.
No takes yet. Share an insight, caveat, or question.
Hon et al. (2009) studied this question.
Synapse has enriched 10 related papers. Consider them for comparative context: