Abstract
The LCP array is a fundamental data structure that provides the length of the longest common prefix between consecutive pairs of suffixes in the lexicographic order. The LCP array is commonly combined with the suffix array to speed up algorithms. In this chapter we present a variant of the suffix sorting algorithm SACA-K (Nong, 2013) that also computes the LCP array. This augmented algorithm, called SACA-K+LCP (Louza et al., 2017b), runs in O(nσ) time using 4σ + O(1) words of workspace, which is optimal for strings from constant alphabets.
This chapter is based on [18]. It was first published in: Information Processing Letters (v. 118) and republished here with the permission of the copyright holder.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
See Ohlebusch’s book [27, Alg. 4.4] for details.
- 2.
- 3.
- 4.
- 5.
- 6.
References
A. Abeliuk, R. Cánovas, G. Navarro, Practical compressed suffix trees. Algorithms 6(2), 319–351 (2013)
M.I. Abouelhoda, S. Kurtz, E. Ohlebusch, Replacing suffix trees with enhanced suffix arrays. J. Discrete Algorithms 2(1), 53–86 (2004)
M.I. Abouelhoda, S. Kurtz, E. Ohlebusch, Enhanced suffix arrays and applications, in Handbook on Computational Molecular Biology, pp. 7–27 (Chapman and Hall/CRC, 2005)
T. Beller, S. Gog, E. Ohlebusch, T. Schnattinger, Computing the longest common prefix array based on the Burrows-Wheeler transform. J. Discrete Algorithms 18, 22–31 (2013)
M. Burrows, D.J. Wheeler, A block-sorting lossless data compression algorithm. Technical report, Digital SRC Research Report, 1994
M. Cáceres, G. Navarro, Faster repetition-aware compressed suffix trees based on block trees, in String Processing and Information Retrieval - 26th International Symposium, SPIRE 2019, Segovia, Spain, October 7–9, 2019, Proceedings, pp. 434–451 (2019)
A. Farruggia, T. Gagie, G. Navarro, S.J. Puglisi, J. Sirén, Relative suffix trees. Comput. J. 61(5), 773–788 (2018)
J. Fischer, Inducing the LCP-array, in Proc. Workshop on Algorithms and Data Structures (WADS), pp. 374–385 (2011)
J. Fischer, V. Heun, A new succinct representation of rmq-information and improvements in the enhanced suffix array, in Proc. Combinatorics, Algorithms, Probabilistic and Experimental Methodologies (ESCAPE), pp. 459–470 (2007)
J. Fischer, F. Kurpicz, Dismantling divsufsort, in Proc. Prague Stringology Conference (PSC), pp. 62–76 (2017)
T. Gagie, G. Navarro, N. Prezza, Fully functional suffix trees and optimal text searching in BWT-runs bounded space. J. ACM 67(1), 2:1–2:54 (2020)
S. Gog, Compressed Suffix Trees: Design, Construction, and Applications, Ph.D. thesis, University of Ulm, 2011
S. Gog, E. Ohlebusch, Fast and lightweight LCP-array construction algorithms, in Proc. Workshop on Algorithm Engineering and Experimentation (ALENEX), pp. 25–34 (2011)
S. Gog, E. Ohlebusch, Compressed suffix trees: efficient computation and storage of LCP-values. J. Exp. Algorithmics (2013)
J. Kärkkäinen, G. Manzini, S.J. Puglisi, Permuted longest-common-prefix array, in Proc. Annual Symposium on Combinatorial Pattern Matching (CPM), pp. 181–192 (2009)
T. Kasai, G. Lee, H. Arimura, S. Arikawa, K. Park, Linear-time longest-common-prefix computation in suffix arrays and its applications, in Proc. Annual Symposium on Combinatorial Pattern Matching (CPM), pp. 181–192 (2001)
F.A. Louza, T. Gagie, G.P. Telles, Burrows-Wheeler transform and LCP array construction in constant space. J. Discrete Algorithms 42, 14–22 (2017)
F.A. Louza, S. Gog, G.P. Telles, Optimal suffix sorting and LCP array construction for constant alphabets. Inf. Process. Lett. 118, 30–34 (2017)
U. Manber, G. Myers, Suffix arrays: a new method for on-line string searches, in Proc. ACM-SIAM Symposium on Discrete Algorithms (SODA), pp. 319–327 (1990)
G. Manzini, Two space saving tricks for linear time LCP array computation, in Proc. Scandinavian Workshop on Algorithm Theory (SWAT), pp. 372–383 (2004)
G. Navarro, V. Mäkinen, Compressed full-text indexes. ACM Comput. Surv. 39(1), 1–61 (2007)
G. Navarro, A.O. Pereira, Faster compressed suffix trees for repetitive collections. ACM J. Exp. Algorithmics 21(1), 1.8:1–1.8:38 (2016)
G. Navarro, L.M.S. Russo, Fast fully-compressed suffix trees, in Proc. IEEE Data Compression Conference (DCC), pp. 283–291 (2014)
G. Nong, Practical linear-time O(1)-workspace suffix sorting for constant alphabets. ACM Trans. Inf. Syst. 31(3), 1–15 (2013)
G. Nong, S. Zhang, W.H. Chan, Two efficient algorithms for linear time suffix array construction. IEEE Trans. Comput. 60(10), 1471–1484 (2011)
D.S.N. Nunes, M. Ayala-Rincón, A compressed suffix tree based implementation with low peak memory usage, in Proc. XXXIX Latin American Computer Conference (CLEI), pp. 73–94 (2013)
E. Ohlebusch, Bioinformatics Algorithms: Sequence Analysis, Genome Rearrangements and Phylogenetic Reconstruction (Oldenbusch Verlag, 2013)
N. Prezza, G. Rosone, Space-efficient computation of the LCP array from the Burrows-Wheeler transform. CoRR (2019). abs/1901.05226
L.M.S. Russo, G. Navarro, A.L. Oliveira, Fully compressed suffix trees. ACM Trans. Algorithms 7(4), 53:1–53:34 (2011)
K. Sadakane, Compressed suffix trees with full functionality. Theory Comput. Syst. 41(4), 589–607 (2007)
P. Weiner, Linear pattern matching algorithms, in Proc. Annual Symposium on Switching and Automata Theory (SWAT), pp. 1–11 (1973)
Author information
Authors and Affiliations
Rights and permissions
Copyright information
© 2020 The Author(s), under exclusive licence to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Louza, F.A., Gog, S., Telles, G.P. (2020). Inducing the LCP Array. In: Construction of Fundamental Data Structures for Strings. SpringerBriefs in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-030-55108-7_4
Download citation
DOI: https://doi.org/10.1007/978-3-030-55108-7_4
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-55107-0
Online ISBN: 978-3-030-55108-7
eBook Packages: Computer ScienceComputer Science (R0)