Optimal Logarithmic Time Randomized Suffix Tree Construction
Martin Farach,S. Muthukrishnan +1 more
- pp 550-561
TLDR
A novel, simple sequential algorithm is presented that constructs the suffix tree of a binary string of length n in O (log n) time and O(n) work with high probability, in contrast to the previously known work-optimal algorithms.Abstract:
The suffix tree of a string, the fundamental data structure in the area of combinatorial pattern matching, has many elegant applications. In this paper, we present a novel, simple sequential algorithm for the construction of suffix trees. We are also able to parallelize our algorithm so that we settle the main open problem in the construction of suffix trees: we give a Las Vegas CRCW PRAM algorithm that constructs the suffix tree of a binary string of length n in O (log n) time and O(n) work with high probability. In contrast, the previously known work-optimal algorithms, while deterministic, take Ω(log2n) time.read more
Citations
More filters
Proceedings ArticleDOI
Ligra: a lightweight graph processing framework for shared memory
Julian Shun,Guy E. Blelloch +1 more
TL;DR: This paper presents a lightweight graph processing framework that is specific for shared-memory parallel/multicore machines, which makes graph traversal algorithms easy to write and significantly more efficient than previously reported results using graph frameworks on machines with many more cores.
Journal ArticleDOI
Compressed Suffix Arrays and Suffix Trees with Applications to Text Indexing and String Matching
TL;DR: The result presents for the first time an efficient index whose size is provably linear in the size of the text in the worst case, and for many scenarios, the space is actually sublinear in practice.
Book ChapterDOI
Simple linear work suffix array construction
Juha Kärkkäinen,Peter Sanders +1 more
TL;DR: The skew algorithm for suffix array construction over integer alphabets that can be implemented to run in linear time using integer sorting as its only nontrivial subroutine is introduced.
Proceedings ArticleDOI
Optimal suffix tree construction with large alphabets
TL;DR: This work builds suffix trees in linear time for integer alphabet using Weiner's algorithm, which matches a trivial /spl Omega/(n log n)-time lower bound based on sorting.
Journal ArticleDOI
Linear work suffix array construction
TL;DR: A generalized algorithm, DC, that allows a space-efficient implementation and, moreover, supports the choice of a space--time tradeoff and is asymptotically faster than all previous suffix tree or array construction algorithms.
References
More filters
Proceedings ArticleDOI
Linear pattern matching algorithms
TL;DR: A linear time algorithm for obtaining a compacted version of a bi-tree associated with a given string is presented and indicated how to solve several pattern matching problems, including some from [4] in linear time.
Journal ArticleDOI
A Space-Economical Suffix Tree Construction Algorithm
TL;DR: A new algorithm is presented for constructing auxiliary digital search trees to aid in exact-match substring searching that has the same asymptotic running time bound as previously published algorithms, but is more economical in space.
Journal ArticleDOI
Efficient randomized pattern-matching algorithms
Richard M. Karp,Michael O. Rabin +1 more
TL;DR: In this article, the first occurrence of a string X as a consecutive block within a text Y is found by using a randomized algorithm. But the algorithm requires a constant number of storage locations, and essentially runs in real time.
Journal ArticleDOI
Parallel merge sort
TL;DR: A parallel implementation of merge sort on a CREW PRAM that uses n processors and O(logn) time; the constant in the running time is small.
Book
Parallel merge sort
TL;DR: In this paper, a parallel implementation of merge sort on a CREW PRAM that uses n processors and O(logn) time is given, and the constant in the running time is small.