In-Place Suffix Sorting

  • Gianni Franceschini
  • S. Muthukrishnan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4596)


Given string T = T[1,...,n], the suffix sorting problem is to lexicographically sort the suffixes T[i,...,n] for all i. This problem is central to the construction of suffix arrays and trees with many applications in string processing, computational biology and compression. A bottleneck in these applications is the amount of workspace needed to perform suffix sorting beyond the space needed to store the input as well as the output. In particular, emphasis is even on the constant c in the O(n) = cn space algorithms known for this problem,

Currently the best previous result [5] takes Open image in new window time and Open image in new window extra space, for any \(v\in [1,\sqrt{n}]\) for strings from a general alphabet. We improve this and present the first known in-place suffix sorting algorithm. Our algorithm takes Open image in new window time using O(1) workspace and is optimal in the worst case for the general alphabet.


Binary Search Lexicographical Order Recursive Call Sorting Algorithm Scanning Process 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Farach, M.: Optimal Suffix Tree Construction with Large Alphabets. In: FOCS 1997, pp. 137–143 (1997)Google Scholar
  2. 2.
    Ferragina, P., Manzini, G.: Engineering a lightweight suffix array construction algorithm. In: Proc. ESA (2002)Google Scholar
  3. 3.
    Gusfield, D.: Algorithms on strings, trees and sequences: Computer Science and Computational Biology. Cambridge Univ Press, Cambridge (1997)zbMATHGoogle Scholar
  4. 4.
    Kärkkäinen, J., Sanders, P.: Simple linear work suffix array construction. Int. Colloquium on Automata, Languages and Programming 2719, 943–955 (2003)CrossRefGoogle Scholar
  5. 5.
    Kärkkäinen, J., Sanders, P., Burkhardt, S.: Linear work suffix array construction. Journal of the ACM (in press)Google Scholar
  6. 6.
    Ko, P., Aluru, S.: Space efficient linear time construction of suffix arrays. In: Baeza-Yates, R.A., Chávez, E., Crochemore, M. (eds.) CPM 2003. LNCS, vol. 2676, pp. 200–210. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  7. 7.
    Ian Munro, J.: An implicit data structure supporting insertion, deletion, and search in O(log2 n) time. Journal of Computer and System Sciences 33(1), 66–74 (1986)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Salowe, J., Steiger, W.: Simplified stable merging tasks. Journal of Algorithms 8(4), 557–571 (1987)zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Gianni Franceschini
    • 1
  • S. Muthukrishnan
    • 2
  1. 1.Department of Computer Science, University of Pisa 
  2. 2.Google Inc., NY 

Personalised recommendations