In
computer science
Computer science is the study of computation, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to practical disciplines (includin ...
, a suffix array is a sorted
array of all
suffixes of a
string
String or strings may refer to:
*String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects
Arts, entertainment, and media Films
* ''Strings'' (1991 film), a Canadian anim ...
. It is a data structure used in, among others, full-text indices, data-compression algorithms, and the field of
bibliometrics.
Suffix arrays were introduced by as a simple, space efficient alternative to
suffix trees. They had independently been discovered by
Gaston Gonnet in 1987 under the name ''PAT array'' .
gave the first in-place
time suffix array construction algorithm that is optimal both in time and space, where ''in-place'' means that the algorithm only needs
additional space beyond the input string and the output suffix array.
Enhanced suffix arrays (ESAs) are suffix arrays with additional tables that reproduce the full functionality of suffix trees preserving the same time and memory complexity.
The suffix array for a subset of all suffixes of a string is called
sparse suffix array. Multiple probabilistic algorithms have been developed to minimize the additional memory usage including an optimal time and memory algorithm.
Definition
Let