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 O (nv + n log n) time and O (n/ v) extra space, for any v [1, n] for strings from a general alphabet. We improve this substantially and present the first known inplace suffix sorting algorithm. Our algorithm takes O (n log n) time using O(1) workspace and is optimal in the worst case for the general alphabet.
Gianni Franceschini, S. Muthukrishnan