The Organization of Permutation Architectures with Bused Interconnections
IEEE Transactions on Computers
New indices for text: PAT Trees and PAT arrays
Information retrieval
Suffix arrays: a new method for on-line string searches
SIAM Journal on Computing
Designing programs that check their work
Journal of the ACM (JACM)
Software reliability via run-time result-checking
Journal of the ACM (JACM)
Fast algorithms for sorting and searching strings
SODA '97 Proceedings of the eighth annual ACM-SIAM symposium on Discrete algorithms
A Space-Economical Suffix Tree Construction Algorithm
Journal of the ACM (JACM)
Reducing the space requirement of suffix trees
Software—Practice & Experience
Quorums from difference covers
Information Processing Letters
The Enhanced Suffix Array and Its Applications to Genome Analysis
WABI '02 Proceedings of the Second International Workshop on Algorithms in Bioinformatics
COCOON '96 Proceedings of the Second 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
Engineering a Lightweight Suffix Array Construction Algorithm
ESA '02 Proceedings of the 10th Annual European Symposium on Algorithms
On the Performance of BWT Sorting Algorithms
DCC '00 Proceedings of the Conference on Data Compression
Optimal suffix tree construction with large alphabets
FOCS '97 Proceedings of the 38th Annual Symposium on Foundations of Computer Science
Rapid identification of repeated patterns in strings, trees and arrays
STOC '72 Proceedings of the fourth annual ACM symposium on Theory of computing
An Efficient Method for in Memory Construction of Suffix Arrays
SPIRE '99 Proceedings of the String Processing and Information Retrieval Symposium & International Workshop on Groupware
Two New Quorum Based Algorithms for Distributed Mutual Exclusion
ICDCS '97 Proceedings of the 17th International Conference on Distributed Computing Systems (ICDCS '97)
Linear pattern matching algorithms
SWAT '73 Proceedings of the 14th Annual Symposium on Switching and Automata Theory (swat 1973)
Distributed and paged suffix trees for large genetic databases
CPM'03 Proceedings of the 14th annual conference on Combinatorial pattern matching
Linear-time construction of suffix arrays
CPM'03 Proceedings of the 14th annual conference on Combinatorial pattern matching
EMAGEN: an efficient approach to multiple whole genome alignment
APBC '04 Proceedings of the second conference on Asia-Pacific bioinformatics - Volume 29
Antisequential Suffix Sorting for BWT-Based Data Compression
IEEE Transactions on Computers
A categorization theorem on suffix arrays with applications to space efficient text indexes
SODA '05 Proceedings of the sixteenth annual ACM-SIAM symposium on Discrete algorithms
Software—Practice & Experience
Linear work suffix array construction
Journal of the ACM (JACM)
A taxonomy of suffix array construction algorithms
ACM Computing Surveys (CSUR)
The engineering of a compression boosting library: theory vs practice in BWT compression
ESA'06 Proceedings of the 14th conference on Annual European Symposium - Volume 14
An efficient, versatile approach to suffix sorting
Journal of Experimental Algorithmics (JEA)
Fast BWT in small space by blockwise suffix sorting
Theoretical Computer Science
Theoretical Computer Science
Counting suffix arrays and strings
Theoretical Computer Science
Better external memory suffix array construction
Journal of Experimental Algorithmics (JEA)
Linear-time construction of suffix arrays
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
On the possible patterns of inputs for block sorting in the Burrows-Wheeler transformation
Information Processing Letters
A quick tour on suffix arrays and compressed suffix arrays
Theoretical Computer Science
Time and space efficient search for small alphabets with suffix arrays
FSKD'05 Proceedings of the Second international conference on Fuzzy Systems and Knowledge Discovery - Volume Part I
Information theoretic approaches to whole genome phylogenies
RECOMB'05 Proceedings of the 9th Annual international conference on Research in Computational Molecular Biology
Counting suffix arrays and strings
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
WABI'07 Proceedings of the 7th international conference on Algorithms in Bioinformatics
Optimal lightweight construction of suffix arrays for constant alphabets
WADS'07 Proceedings of the 10th international conference on Algorithms and Data Structures
Trends in suffix sorting: a survey of low memory algorithms
ACSC '12 Proceedings of the Thirty-fifth Australasian Computer Science Conference - Volume 122
Practical linear-time O(1)-workspace suffix sorting for constant alphabets
ACM Transactions on Information Systems (TOIS)
Sparse suffix tree construction in small space
ICALP'13 Proceedings of the 40th international conference on Automata, Languages, and Programming - Volume Part I
Faster semi-external suffix sorting
Information Processing Letters
The complexity of minimum difference cover
Journal of Discrete Algorithms
Hi-index | 0.01 |
We describe an algorithm that, for any v ∈ [2, n], constructs the suffix array of a string of length n in O(vn + n log n) time using O(v + n/ √v) space in addition to the input (the string) and the output (the suffix array). By setting v = log n, we obtain an O(n log n) time algorithm using O(n/√log n) extra space. This solves the open problem stated by Manzini and Ferragina [ESA '02] of whether there exists a lightweight (sublinear extra space) O(n log n) time algorithm. The key idea of the algorithm is to first sort a sample of suffixes chosen using mathematical constructs called difference covers. The algorithm is not only lightweight but also fast in practice as demonstrated by experiments. Additionally, we describe fast and lightweight suffix array checkers, i.e., algorithms that check the correctness of a suffix array.