2006
DOI: 10.1145/1217856.1217858
|View full text |Cite
|
Sign up to set email alerts
|

Linear work suffix array construction

Abstract: Suffix trees and suffix arrays are widely used and largely interchangeable index structures on strings and sequences. Practitioners prefer suffix arrays due to their simplicity and space efficiency while theoreticians use suffix trees due to linear-time construction algorithms and more explicit structure. We narrow this gap between theory and practice with a simple linear-time construction algorithm for suffix arrays. The simplicity is demonstrated with a C++ implementation of 50 effective lines of code. The a… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
257
0
5

Year Published

2007
2007
2016
2016

Publication Types

Select...
3
3
2

Relationship

0
8

Authors

Journals

citations
Cited by 377 publications
(263 citation statements)
references
References 33 publications
1
257
0
5
Order By: Relevance
“…These words are assumed to be over an integer alphabet; that is, if w is the input word, and has length n, then we assume that its letters are integers from the set {l,...,n}. See a discussion about this assumption in [9]. If the input to our problems is a language, then we assume that this language is specified by a procedure deciding it (e.g., if the language is regular, trien we assume that we are given a DFA accepting it).…”
Section: Preliminariesmentioning
confidence: 99%
See 1 more Smart Citation
“…These words are assumed to be over an integer alphabet; that is, if w is the input word, and has length n, then we assume that its letters are integers from the set {l,...,n}. See a discussion about this assumption in [9]. If the input to our problems is a language, then we assume that this language is specified by a procedure deciding it (e.g., if the language is regular, trien we assume that we are given a DFA accepting it).…”
Section: Preliminariesmentioning
confidence: 99%
“…For details, see, e.g., [8,9]. Similarly, one can construct in linear time data structures allowing us to retrieve in constant time the length of the longest common suffix of any two prefixes w[l..¿] and w[l..j] of u, denoted LCS(i,j).…”
Section: Preliminariesmentioning
confidence: 99%
“…To sort the rotations of a binary string into a BWT matrix in B-order, we will apply a linear-time suffix-sorting algorithm, such as that of Kärkkäinen and Sanders [KS03], Kärkkäinen, Sanders and Burkhardt [KSB06], Ko and Aluru [KA03], or Nong, Zhang, and Chan [NZC09].…”
Section: Introductionmentioning
confidence: 99%
“…In the first step, construct a suffix array (denoted by SA) data structure [Manber and Myers (1993)] on s in linear time [Karkkanen and Sander (2003) Maintaining the sorted order is critical for efficient generation of candidate pairs, as will soon become evident.…”
Section: Preprocessingmentioning
confidence: 99%
“…For the preprocessing phase, the construction of suffix array [Karkkanen and Sander (2003); Lemma 4, the cost of Step S3 over all iterations is proportional to the number of candidate pairs generated. For steps Si and S%, note that at worst case, locating a particular bi may take O(n) if it is the first entry in its Lset.…”
Section: Run-time Analysismentioning
confidence: 99%