An elegant algorithm for the construction of suffix arrays
From MaRDI portal
Abstract: The suffix array is a data structure that finds numerous applications in string processing problems for both linguistic texts and biological data. It has been introduced as a memory efficient alternative for suffix trees. The suffix array consists of the sorted suffixes of a string. There are several linear time suffix array construction algorithms (SACAs) known in the literature. However, one of the fastest algorithms in practice has a worst case run time of . The problem of designing practically and theoretically efficient techniques remains open. In this paper we present an elegant algorithm for suffix array construction which takes linear time with high probability; the probability is on the space of all possible inputs. Our algorithm is one of the simplest of the known SACAs and it opens up a new dimension of suffix array construction that has not been explored until now. Our algorithm is easily parallelizable. We offer parallel implementations on various parallel models of computing. We prove a lemma on the -mers of a random string which might find independent applications. We also present another algorithm that utilizes the above algorithm. This algorithm is called RadixSA and has a worst case run time of . RadixSA introduces an idea that may find independent applications as a speedup technique for other SACAs. An empirical comparison of RadixSA with other algorithms on various datasets reveals that our algorithm is one of the fastest algorithms to date. The C++ source code is freely available at http://www.engr.uconn.edu/~man09004/radixSA.zip
Recommendations
- Two Efficient Algorithms for Linear Time Suffix Array Construction
- Constructing suffix arrays in linear time
- Linear-time construction of suffix arrays (extended abstract)
- Suffix arrays with a twist
- An efficient, versatile approach to suffix sorting
- Space efficient linear time construction of suffix arrays
- Space efficient linear time construction of suffix arrays
- Linear-time suffix sorting -- a new approach for suffix array construction
Cites work
- Engineering a lightweight suffix array construction algorithm
- Fast lightweight suffix array construction and checking
- Faster suffix sorting
- scientific article; zbMATH DE number 432779 (Why is no real title available?)
- scientific article; zbMATH DE number 2038766 (Why is no real title available?)
- scientific article; zbMATH DE number 6472612 (Why is no real title available?)
- Linear-time construction of suffix arrays (extended abstract)
- Optimal and Practical Algorithms for Sorting on the PDM
- Parallel Merge Sort
- Sorting on a mesh-connected parallel computer
- Space efficient linear time construction of suffix arrays
- Special issue: Average-case analysis of algorithms
Cited in
(21)- Extended suffix array construction using Lyndon factors
- A fast algorithm for the all-pairs suffix-prefix problem
- On string matching with mismatches
- Engineering a lightweight suffix array construction algorithm
- Efficient Algorithms for Two Extensions of LPF Table: The Power of Suffix Arrays
- RECONSTRUCTING A SUFFIX ARRAY
- Linear work suffix array construction
- Linear Time Suffix Array Construction Using D-Critical Substrings
- On the number of elements to reorder when updating a suffix array
- scientific article; zbMATH DE number 1947433 (Why is no real title available?)
- scientific article; zbMATH DE number 2038766 (Why is no real title available?)
- Scalable Parallel Suffix Array Construction
- scientific article; zbMATH DE number 2105038 (Why is no real title available?)
- Inducing enhanced suffix arrays for string collections
- A Fast Suffix-Sorting Algorithm
- scientific article; zbMATH DE number 2230164 (Why is no real title available?)
- Parallel suffix sorting for large string analytics
- On the optimisation of the GSACA suffix array construction algorithm
- Suffix sorting via matching statistics
- Fast, parallel, and cache-friendly suffix array construction
- Dynamic extended suffix arrays
This page was built for publication: An elegant algorithm for the construction of suffix arrays
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2250537)