## Engineering a lightweight suffix array construction algorithm (Extended Abstract)

Citations: | 59 - 4 self |

### BibTeX

@MISC{Manzini_engineeringa,

author = {Giovanni Manzini and Paolo Ferragina},

title = {Engineering a lightweight suffix array construction algorithm (Extended Abstract)},

year = {}

}

### Years of Citing Articles

### OpenURL

### Abstract

In this paper we consider the problem of computing the suffix array of a text T [1, n]. This problem consists in sorting the suffixes of T in lexicographic order. The suffix array [16] (or pat array [9]) is a simple, easy to code, and elegant data structure used for several fundamental string matching problems involving both linguistic texts and biological data [4, 11]. Recently, the interest in this data structure has been revitalized by its use as a building block for three novel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably [17] and practically [20] effective compression tool; (2) the construction of succinct [10, 19] and compressed [7, 8] indexes; the latter can store both the input text and its full-text index using roughly the same space used by traditional compressors for the text alone; and (3) algorithms for clustering and ranking the answers to user queries in web-search engines [22]. In all these applications the construction of the suffix array is the computational bottleneck both in time and space. This motivated our interest in designing yet another suffix array construction algorithm which is fast and "lightweight" in the sense that it uses small space...

### Citations

901 |
Algorithms on Strings, Trees and Sequences
- Gusfield
- 1998
(Show Context)
Citation Context ...The suffix array [16] (orpat array [9]) is a simple, easy to code, and elegant data structure used for several fundamental string matching problems involving both linguistic texts and biological data =-=[4, 11]-=-. Recently, the interest in this data structure has been revitalized by its use as a building block for three novel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably... |

645 | Suffix arrays: a new method for on-line string searches
- Manber, Myers
- 1993
(Show Context)
Citation Context ...erragin@di.unipi.it 1 Introduction We consider the problem of computing the suffix array of a text T [1,n]. This problem consists in sorting the suffixes of T in lexicographic order. The suffix array =-=[16]-=- (orpat array [9]) is a simple, easy to code, and elegant data structure used for several fundamental string matching problems involving both linguistic texts and biological data [4, 11]. Recently, th... |

566 | A Block – Sorting Lossless Data compression Algorithm
- Burrows, Wheeler
- 1994
(Show Context)
Citation Context ... biological data [4, 11]. Recently, the interest in this data structure has been revitalized by its use as a building block for three novel applications: (1) the Burrows-Wheeler compression algorithm =-=[3]-=-, which is a provably [17] and practically [20] effective compression tool; (2) the construction of succinct [10, 19] and compressed [7, 8] indexes; the latter can store both the input text and its fu... |

328 |
Text Algorithms
- Crochemore, Rytter
- 1994
(Show Context)
Citation Context ...The suffix array [16] (orpat array [9]) is a simple, easy to code, and elegant data structure used for several fundamental string matching problems involving both linguistic texts and biological data =-=[4, 11]-=-. Recently, the interest in this data structure has been revitalized by its use as a building block for three novel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably... |

238 | Grouper: A Dynamic Clustering Interface to Web Search Results - Zamir, Etzioni |

193 | High-order entropy-compressed text indexes - Grossi, Gupta, et al. - 2003 |

188 | Compressed suffix arrays and suffix trees with applications to text indexing and string matching
- Grossi, Vitter
- 2005
(Show Context)
Citation Context ...lding block for three novel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably [17] and practically [20] effective compression tool; (2) the construction of succinct =-=[10, 19]-=- and compressed [7, 8] indexes; the latter can store both the input text and its full-text index using roughly the same space used by traditional compressors for the text alone; and (3) algorithms for... |

180 | Opportunistic Data Structures with Application
- Ferrragina, Manzini
- 2000
(Show Context)
Citation Context ...vel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably [17] and practically [20] effective compression tool; (2) the construction of succinct [10, 19] and compressed =-=[7, 8]-=- indexes; the latter can store both the input text and its full-text index using roughly the same space used by traditional compressors for the text alone; and (3) algorithms for clustering and rankin... |

150 | Linear work suffix array construction - Kärkkäinen, Sanders, et al. - 2006 |

147 | Fast algorithms for sorting and searching strings
- Bentley, Sedgewick
- 1997
(Show Context)
Citation Context ...he largest average lcp. 2 Definitions and Previous Results Let T [1,n] denote a text over the alphabet Σ. The suffix array [16] (orpat array [9]) for T is an array SA[1,n] such that T [SA[1],n], T [SA=-=[2]-=-,n], etc. is the list of suffixes of T sorted in lexicographic order. For example, for T = babcc then SA =[2, 1, 3, 5, 4] since T [2, 5] = abcc is the suffix with lower lexicographic rank, followed by... |

131 | An analysis of the Burrows-Wheeler transform
- Manzini
- 2001
(Show Context)
Citation Context ... Recently, the interest in this data structure has been revitalized by its use as a building block for three novel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably =-=[17]-=- and practically [20] effective compression tool; (2) the construction of succinct [10, 19] and compressed [7, 8] indexes; the latter can store both the input text and its full-text index using roughl... |

120 | The string B-tree: a new data structure for string search in external memory and its applications
- Ferragina, Grossi
- 1999
(Show Context)
Citation Context ...til we reach a leaf ℓ. Then we compare si with the string associated to leaf ℓ and we determine the length of their common prefix. Finally, we update the trie adding the leaf corresponding to si (see =-=[6]-=- for details and for the merits of blind tries with respect to standard compacted tries). Obviously in the construction of the trie we ignore the first L characters of each suffix because they are ide... |

117 | Reducing the space requirement of suffix trees
- Kurtz
- 1999
(Show Context)
Citation Context ...ry”. R. Möhring and R. Raman (Eds.): ESA 2002, LNCS 2461, pp. 698–710, 2002. c○ Springer-Verlag Berlin Heidelberg 2002sEngineering a Lightweight Suffix Array Construction Algorithm 699 text structure =-=[14]-=-). This makes their use impractical even for moderately large texts. For this reason, suffix arrays are usually built using algorithms which run in O(n log n) time but have a smaller space occupancy. ... |

72 | Space efficient linear time construction of suffix arrays - Ko, Aluru - 2003 |

71 |
L.: Rapid identification of repeated patterns in strings, trees and arrays
- Karp, Miller, et al.
- 1972
(Show Context)
Citation Context ...fferent formats; they also display a wide range of sizes and of average lcp’s. 2.1 The Larsson-Sadakane qsufsort Algorithm The qsufsort algorithm [15] is based on the doubling technique introduced in =-=[13]-=- and first used for the construction of the suffix array in [16]. Given two strings v, w and t>0wewritev<t w if the length-t prefix of v is lexicographically smaller than the length-t prefix of w. Sim... |

65 | An Experimental Study of an Opportunistic Index
- Ferrragina, Manzini
- 2001
(Show Context)
Citation Context ...vel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably [17] and practically [20] effective compression tool; (2) the construction of succinct [10, 19] and compressed =-=[7, 8]-=- indexes; the latter can store both the input text and its full-text index using roughly the same space used by traditional compressors for the text alone; and (3) algorithms for clustering and rankin... |

59 | Compressed text databases with efficient query algorithms based on the compressed suffix array
- Sadakane
(Show Context)
Citation Context ...lding block for three novel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably [17] and practically [20] effective compression tool; (2) the construction of succinct =-=[10, 19]-=- and compressed [7, 8] indexes; the latter can store both the input text and its full-text index using roughly the same space used by traditional compressors for the text alone; and (3) algorithms for... |

58 | McIlroy: Engineering a Sort Function
- Bentley, Douglas
- 1993
(Show Context)
Citation Context ...he one with the largest average lcp. 2 Definitions and Previous Results Let T [1,n] denote a text over the alphabet Σ. The suffix array [16] (orpat array [9]) for T is an array SA[1,n] such that T [SA=-=[1]-=-,n], T [SA[2],n], etc. is the list of suffixes of T sorted in lexicographic order. For example, for T = babcc then SA =[2, 1, 3, 5, 4] since T [2, 5] = abcc is the suffix with lower lexicographic rank... |

54 | Linear-time construction of suffix arrays - Kim, Sim, et al. - 2003 |

50 | Breaking a time-and-space barrier in constructing full-text indices - Hon, Sadakane, et al. - 2003 |

45 | Faster suffix sorting
- Larsson, Sadakane
- 1999
(Show Context)
Citation Context ...rrays are usually built using algorithms which run in O(n log n) time but have a smaller space occupancy. Among these algorithms the current “leader” is the qsufsort algorithm by Larsson and Sadakane =-=[15]-=-. qsufsort uses 8n bytes 1 and despite the O(n log n) worst case bound it is faster than the algorithms based on suffix tree construction. Unfortunately, the size of our documents has grown much more ... |

44 |
On the sorting-complexity of suffix tree construction
- Farach-Colton, Ferragina, et al.
(Show Context)
Citation Context ...store each integer in a four byte word; this yields a total space occupancy of 4n bytes. For what concerns the cost of constructing the suffix array, the theoretically best algorithms run in Θ(n) time=-=[5]-=-. These algorithms work by first building the suffix tree and then obtaining the sorted suffixes via an in-order traversal of the tree. However, suffix tree construction algorithms are both complex an... |

39 |
New indices for text
- Gonnet, Baeza-Yates, et al.
- 1992
(Show Context)
Citation Context ...t 1 Introduction We consider the problem of computing the suffix array of a text T [1,n]. This problem consists in sorting the suffixes of T in lexicographic order. The suffix array [16] (orpat array =-=[9]-=-) is a simple, easy to code, and elegant data structure used for several fundamental string matching problems involving both linguistic texts and biological data [4, 11]. Recently, the interest in thi... |

30 |
On the performance of BWT sorting algorithms
- Seward
- 2000
(Show Context)
Citation Context ... documents has grown much more quickly than the main memory of our computers. Thus, it is desirable to build a suffix array using as small space as possible. Recently, Itoh and Tanaka [12] and Seward =-=[21]-=- have proposed two new algorithms which only use 5n bytes. From the theoretical point of view these algorithms have a Θ � n 2 log n � worst case complexity. In practice they are faster than qsufsort w... |

25 | Fast lightweight suffix array construction and checking - Burkhardt, Kärkkäinen - 2003 |

17 |
An efficient method for in memory construction of suffix arrays
- Itoh, Tanaka
- 1999
(Show Context)
Citation Context ... the size of our documents has grown much more quickly than the main memory of our computers. Thus, it is desirable to build a suffix array using as small space as possible. Recently, Itoh and Tanaka =-=[12]-=- and Seward [21] have proposed two new algorithms which only use 5n bytes. From the theoretical point of view these algorithms have a Θ � n 2 log n � worst case complexity. In practice they are faster... |

15 | Compressed sux arrays and sux trees with applications to text indexing and string matching - Grossi, Vitter - 2000 |

14 | Engineering radix sort
- McIlroy, Bostic
- 1993
(Show Context)
Citation Context ...a Type A suffix we move it to the first empty position of bucket B T [i−1]. Type B suffixes are sorted using textbook string sorting algorithms: in their implementation the authors use MSD radix sort =-=[18]-=- for sorting large groups of suffixes, Bentley-Sedgewick multikey quicksort for medium size groups, and insertion sort for small groups. Summing up, two-stage can be considered an “advanced” direct co... |

9 |
The BZIP2 home page
- Seward
- 1997
(Show Context)
Citation Context ...st in this data structure has been revitalized by its use as a building block for three novel applications: (1) the Burrows-Wheeler compression algorithm [3], which is a provably [17] and practically =-=[20]-=- effective compression tool; (2) the construction of succinct [10, 19] and compressed [7, 8] indexes; the latter can store both the input text and its full-text index using roughly the same space used... |

8 | Compressed text databases with ecient query algorithms based on the compressed sux array - Sadakane - 2000 |

7 | Faster sux sorting - Larsson, Sadakane - 1999 |

5 | Rapid identi of repeated patterns in strings, trees and arrays - Karp, Miller, et al. - 1972 |

4 | Reducing the space requirement of sux trees. Software Practice and Experiences - Kurtz - 1999 |

4 | Improving suffix-array construction algorithms with applications - Kao |

3 | On the sorting-complexity of sux tree construction - Farach-Colton, Ferragina, et al. - 2000 |

3 | An ecient method for in memory construction of sux arrays - Itoh, Tanaka - 1999 |

1 | Mkvtree package (available upon request - Kurtz |

1 | Lightweight suffix sorting home page. http://www.mfn.unipmn. it/~manzini/lightweight - Manzini, Ferragina |