SIAM Journal on Computing
Optimal and sublogarithmic time randomized parallel sorting algorithms
SIAM Journal on Computing
A bridging model for parallel computation
Communications of the ACM
Optimal merging and sorting on the EREW PRAM
Information Processing Letters
The Organization of Permutation Architectures with Bused Interconnections
IEEE Transactions on Computers
New indices for text: PAT Trees and PAT arrays
Information retrieval
An introduction to parallel algorithms
An introduction to parallel algorithms
Suffix arrays: a new method for on-line string searches
SIAM Journal on Computing
Deterministic distribution sort in shared and distributed memory multiprocessors
SPAA '93 Proceedings of the fifth annual ACM symposium on Parallel algorithms and architectures
Greed sort: optimal deterministic sorting on parallel disks
Journal of the ACM (JACM)
Algorithms on strings, trees, and sequences: computer science and computational biology
Algorithms on strings, trees, and sequences: computer science and computational biology
The string B-tree: a new data structure for string search in external memory and its applications
Journal of the ACM (JACM)
A Space-Economical Suffix Tree Construction Algorithm
Journal of the ACM (JACM)
Managing gigabytes (2nd ed.): compressing and indexing documents and images
Managing gigabytes (2nd ed.): compressing and indexing documents and images
Communication-Efficient Parallel Sorting
SIAM Journal on Computing
On the sorting-complexity of suffix tree construction
Journal of the ACM (JACM)
Quorums from difference covers
Information Processing Letters
Parallel Computing
Optimal Logarithmic Time Randomized Suffix Tree Construction
ICALP '96 Proceedings of the 23rd International Colloquium on Automata, Languages and Programming
Optimal Exact Strring Matching Based on Suffix Arrays
SPIRE 2002 Proceedings of the 9th International Symposium on String Processing and Information Retrieval
COCOON '96 Proceedings of the Second Annual International Conference on Computing and Combinatorics
A Space and Time Efficient Algorithm for Constructing Compressed Suffix Arrays
COCOON '02 Proceedings of the 8th Annual International Conference on Computing and Combinatorics
Linear-Time Longest-Common-Prefix Computation in Suffix Arrays and Its Applications
CPM '01 Proceedings of the 12th Annual Symposium on Combinatorial Pattern Matching
Asynchronous parallel disk sorting
Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures
Optimal suffix tree construction with large alphabets
FOCS '97 Proceedings of the 38th Annual Symposium on Foundations of Computer Science
Overcoming the Memory Bottleneck in Suffix Tree Construction
FOCS '98 Proceedings of the 39th Annual Symposium on Foundations of Computer Science
FOCS '99 Proceedings of the 40th Annual Symposium on Foundations of Computer Science
Two New Quorum Based Algorithms for Distributed Mutual Exclusion
ICDCS '97 Proceedings of the 17th International Conference on Distributed Computing Systems (ICDCS '97)
Breaking a Time-and-Space Barrier in Constructing Full-Text Indices
FOCS '03 Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science
Replacing suffix trees with enhanced suffix arrays
Journal of Discrete Algorithms - SPIRE 2002
The Performance of Linear Time Suffix Sorting Algorithms
DCC '05 Proceedings of the Data Compression Conference
Better external memory suffix array construction
Journal of Experimental Algorithmics (JEA)
Fast lightweight suffix array construction and checking
CPM'03 Proceedings of the 14th annual conference on Combinatorial pattern matching
Distributed and paged suffix trees for large genetic databases
CPM'03 Proceedings of the 14th annual conference on Combinatorial pattern matching
Simple linear work suffix array construction
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
Scalable parallel suffix array construction
EuroPVM/MPI'06 Proceedings of the 13th European PVM/MPI User's Group conference on Recent advances in parallel virtual machine and message passing interface
CPM'05 Proceedings of the 16th annual conference on Combinatorial Pattern Matching
Fast Frequent String Mining Using Suffix Arrays
ICDM '05 Proceedings of the Fifth IEEE International Conference on Data Mining
A taxonomy of suffix array construction algorithms
ACM Computing Surveys (CSUR)
Theoretical Computer Science
Scalable parallel suffix array construction
Parallel Computing
Fast BWT in small space by blockwise suffix sorting
Theoretical Computer Science
Theoretical Computer Science
Faster index for property matching
Information Processing Letters
Better external memory suffix array construction
Journal of Experimental Algorithmics (JEA)
Engineering Radix Sort for Strings
SPIRE '08 Proceedings of the 15th International Symposium on String Processing and Information Retrieval
Text Indexing, Suffix Sorting, and Data Compression: Common Problems and Techniques
CPM '09 Proceedings of the 20th Annual Symposium on Combinatorial Pattern Matching
Errata for “Faster index for property matching”
Information Processing Letters
Compressing and indexing labeled trees, with applications
Journal of the ACM (JACM)
A Linear-Time Burrows-Wheeler Transform Using Induced Sorting
SPIRE '09 Proceedings of the 16th International Symposium on String Processing and Information Retrieval
Searching for gapped palindromes
Theoretical Computer Science
Mining Local Correlation Patterns in Sets of Sequences
DS '09 Proceedings of the 12th International Conference on Discovery Science
Dynamic extended suffix arrays
Journal of Discrete Algorithms
WALCOM'08 Proceedings of the 2nd international conference on Algorithms and computation
Size Matters: Space/Time Tradeoffs to Improve GPGPU Applications Performance
Proceedings of the 2010 ACM/IEEE International Conference for High Performance Computing, Networking, Storage and Analysis
Suffix trees for inputs larger than main memory
Information Systems
Toward optimal disk layout of genome scale suffix trees
SEAL'10 Proceedings of the 8th international conference on Simulated evolution and learning
A quick tour on suffix arrays and compressed suffix arrays
Theoretical Computer Science
Rapid parallel genome indexing with MapReduce
Proceedings of the second international workshop on MapReduce and its applications
CPM'11 Proceedings of the 22nd annual conference on Combinatorial pattern matching
Lightweight BWT construction for very large string collections
CPM'11 Proceedings of the 22nd annual conference on Combinatorial pattern matching
WADS'11 Proceedings of the 12th international conference on Algorithms and data structures
Pattern matching in lempel-Ziv compressed strings: fast, simple, and deterministic
ESA'11 Proceedings of the 19th European conference on Algorithms
Using suffix arrays for efficiently recognition of named entities in large scale
KES'11 Proceedings of the 15th international conference on Knowledge-based and intelligent information and engineering systems - Volume Part II
Fast computation of a string duplication history under no-breakpoint-reuse
SPIRE'11 Proceedings of the 18th international conference on String processing and information retrieval
On suffix extensions in suffix trees
SPIRE'11 Proceedings of the 18th international conference on String processing and information retrieval
Scalable parallel suffix array construction
EuroPVM/MPI'06 Proceedings of the 13th European PVM/MPI User's Group conference on Recent advances in parallel virtual machine and message passing interface
Lightweight data indexing and compression in external memory
LATIN'10 Proceedings of the 9th Latin American conference on Theoretical Informatics
Indexing a dictionary for subset matching queries
Algorithms and Applications
p-Suffix sorting as arithmetic coding
IWOCA'11 Proceedings of the 22nd international conference on Combinatorial Algorithms
SPIRE'05 Proceedings of the 12th international conference on String Processing and Information Retrieval
Memory-Aware BWT by segmenting sequences to support subsequence search
APWeb'12 Proceedings of the 14th Asia-Pacific international conference on Web Technologies and Applications
Revisiting bounded context block-sorting transformations
Software—Practice & Experience
p-Suffix sorting as arithmetic coding
Journal of Discrete Algorithms
On suffix extensions in suffix trees
Theoretical Computer Science
FEMTO: fast search of large sequence collections
CPM'12 Proceedings of the 23rd Annual conference on Combinatorial Pattern Matching
Speeding up q-gram mining on grammar-based compressed texts
CPM'12 Proceedings of the 23rd Annual conference on Combinatorial Pattern Matching
Time-Space trade-offs for longest common extensions
CPM'12 Proceedings of the 23rd Annual conference on Combinatorial Pattern Matching
CPM'07 Proceedings of the 18th annual conference on Combinatorial Pattern Matching
A simple construction of two-dimensional suffix trees in linear time
CPM'07 Proceedings of the 18th annual conference on Combinatorial Pattern Matching
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
Optimal lightweight construction of suffix arrays for constant alphabets
WADS'07 Proceedings of the 10th international conference on Algorithms and Data Structures
String matching with involutions
UCNC'12 Proceedings of the 11th international conference on Unconventional Computation and Natural Computation
Distributed string mining for high-throughput sequencing data
WABI'12 Proceedings of the 12th international conference on Algorithms in Bioinformatics
Parikh matching in the streaming model
SPIRE'12 Proceedings of the 19th international conference on String Processing and Information Retrieval
SPIRE'12 Proceedings of the 19th international conference on String Processing and Information Retrieval
Parallel suffix array construction for shared memory architectures
SPIRE'12 Proceedings of the 19th international conference on String Processing and Information Retrieval
Near real-time suffix tree construction via the fringe marked ancestor problem
Journal of Discrete Algorithms
Parallel suffix array and least common prefix for the GPU
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
FPI: a novel indexing method using frequent patterns for approximate string searches
Proceedings of the Joint EDBT/ICDT 2013 Workshops
Lightweight algorithms for constructing and inverting the BWT of string collections
Theoretical Computer Science
CICLing'13 Proceedings of the 14th international conference on Computational Linguistics and Intelligent Text Processing - Volume Part I
Brief announcement: truly parallel burrows-wheeler compression and decompression
Proceedings of the twenty-fifth annual ACM symposium on Parallelism in algorithms and architectures
Practical linear-time O(1)-workspace suffix sorting for constant alphabets
ACM Transactions on Information Systems (TOIS)
One-Variable word equations in linear time
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part II
On (dynamic) range minimum queries in external memory
WADS'13 Proceedings of the 13th international conference on Algorithms and Data Structures
Spaces, Trees, and Colors: The algorithmic landscape of document retrieval on sequences
ACM Computing Surveys (CSUR)
Compressed property suffix trees
Information and Computation
Design and analysis of periodic multiple seeds
Theoretical Computer Science
Simple and efficient LZW-compressed multiple pattern matching
Journal of Discrete Algorithms
Time-space trade-offs for longest common extensions
Journal of Discrete Algorithms
Hi-index | 0.01 |
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 algorithm is called DC3, which stems from the central underlying concept of difference cover. This view leads to a generalized algorithm, DC, that allows a space-efficient implementation and, moreover, supports the choice of a space--time tradeoff. For any v ∈ [1,&nradic;], it runs in O(vn) time using O(n/&vradic;) space in addition to the input string and the suffix array. We also present variants of the algorithm for several parallel and hierarchical memory models of computation. The algorithms for BSP and EREW-PRAM models are asymptotically faster than all previous suffix tree or array construction algorithms.