Compressed Compact Suffix Arrays

  • Veli Mäkinen
  • Gonzalo Navarro
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3109)


The compact suffix array (CSA) is a space-efficient full-text index, which is fast in practice to search for patterns in a static text. Compared to other compressed suffix arrays (Grossi and Vitter, Sadakane, Ferragina and Manzini), the CSA is significantly larger (2.7 times the text size, as opposed to 0.6–0.8 of compressed suffix arrays). The space of the CSA includes that of the text, which the CSA needs separately available. Compressed suffix arrays, on the other hand, include the text, that is, they are self-indexes. Although compressed suffix arrays are very fast to determine the number of occurrences of a pattern, they are in practice very slow to report even a few occurrence positions or text contexts. In this aspect the CSA is much faster. In this paper we contribute to this space-time trade off by introducing the Compressed CSA (CCSA), a self-index that improves the space usage of the CSA in exchange for search speed. We show that the occ occurrence positions of a pattern of length m in a text of length n can be reported in O((m+occ)log n) time using the CCSA, whose representation needs O(n(1+H k log n)) bits for any k, H k being the k-th order empirical entropy of the text. In practice the CCSA takes 1.6 times the text size (and includes the text). This is still larger than current compressed suffix arrays, and similar in size to the LZ-index of Navarro. Search times are by far better than for self-indexes that take less space than the text, and competitive against the LZ-index and versions of compressed suffix arrays tailored to take 1.6 times the text size.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Brodnik, A., Munro, I.: Membership in constant time and almost-minimum space. SIAM J. on Comp. 5, 1627–1640 (1999)CrossRefMathSciNetGoogle Scholar
  2. 2.
    Burrows, M., Wheeler, D.J.: A block-sorting lossless data compression algorithm. DEC SRC Research Report 124 (1994)Google Scholar
  3. 3.
    Clark, D.: Compact Pat Trees. PhD thesis, University of Waterloo (1996)Google Scholar
  4. 4.
    Crochemore, M., Vérin, R.: Direct Construction of Compact Directed Acyclic Word Graphs. In: Hein, J., Apostolico, A. (eds.) CPM 1997. LNCS, vol. 1264, pp. 116–129. Springer, Heidelberg (1997)Google Scholar
  5. 5.
    Ferragina, P., Manzini, G.: Opportunistic Data Structures with Applications. In: Proc. IEEE Symp. on Foundations of Computer Science (FOCS 2000), pp. 390–398 (2000)Google Scholar
  6. 6.
    Ferragina, P., Manzini, G.: An Experimental Study of an Opportunistic Index. In: Proc. 12th Symposium on Discrete Algorithms (SODA 2001), pp. 269–278 (2001)Google Scholar
  7. 7.
    Giegerich, R., Kurtz, S., Stoye, J.: Efficient Implementation of Lazy Suffix Trees. In: Vitter, J.S., Zaroliagis, C.D. (eds.) WAE 1999. LNCS, vol. 1668, pp. 30–42. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  8. 8.
    Grossi, R., Vitter, J.: Compressed suffix arrays and suffix trees with applications to text indexing and string matching. In: Proc. 32nd Symposium on Theory of Computing (STOC 2000), pp. 397–406 (2000)Google Scholar
  9. 9.
    Harman, D.: Overview of the Third Text REtrieval Conference. In: Proc. TREC-3, pp. 1–19 (1995) ;NIST Special Publication pp. 500-207.Google Scholar
  10. 10.
    Jacobson, G.: Succinct Static Data Structures. PhD thesis, CMU-CS-89-112, Carnegie Mellon University (1989)Google Scholar
  11. 11.
    Manber, U., Myers, G.: Suffix arrays: A new method for on-line string searches. SIAM J. Comput. 22, 935–948 (1993)MATHCrossRefMathSciNetGoogle Scholar
  12. 12.
    Manzini, G.: An Analysis of the Burrows-Wheeler Transform. J. of the ACM 48(3), 407–430 (2001)CrossRefMathSciNetGoogle Scholar
  13. 13.
    Munro, I.: Tables. In: Proc. FSTTCS 1996, pp. 37–42 (1996)Google Scholar
  14. 14.
    Mäkinen, V.: Compact Suffix Array — A Space-efficient Full-text Index. Fundamenta Informaticae 56(1-2), 191–210 (2003)MATHMathSciNetGoogle Scholar
  15. 15.
    Mäkinen, V., Navarro, G.: New search algorithms and time/space trade offs for succinct suffix arrays. Technical report C-2004-20, Dept. of Computer Science, Univ. of Helsinki (April 2004)Google Scholar
  16. 16.
    Navarro, G.: Indexing text using the ziv-lempel trie. In: Laender, A.H.F., Oliveira, A.L. (eds.) SPIRE 2002. LNCS, vol. 2476, pp. 325–336. Springer, Heidelberg (2002) ;Extended version to appear in J. of Discrete AlgorithmsCrossRefGoogle Scholar
  17. 17.
    Navarro, G.: The LZ-index: A Text Index Based on the Ziv-Lempel Trie. Technical Report TR/DCC-2003-1, Dept. of Computer Science, Univ. of Chile (January 2003)Google Scholar
  18. 18.
    Sadakane, K.: Compressed text databases with efficient query algorithms based on the compressed suffix array. In: Lee, D.T., Teng, S.-H. (eds.) ISAAC 2000. LNCS, vol. 1969, pp. 410–421. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  19. 19.
    Weiner, P.: Linear pattern matching algorithms.In: Proc. IEEE 14th Annual Symposium on Switching and Automata Theory, pp.1–11 (1973)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Veli Mäkinen
    • 1
  • Gonzalo Navarro
    • 2
  1. 1.Department of Computer ScienceUniversity of HelsinkiFinland
  2. 2.Department of Computer ScienceUniversity of ChileBlanco Encalada, SantiagoChile

Personalised recommendations