We consider the problem of computing the suffix array of a text T[l,n]. This problem consists in sorting the suffixes of T in lexicographic order. The suffix array (or PAT array) is a simple, easy to code, and elegant data structure used for several fundamental string matching problems involving both linguistic texts and biological data. Recently, the interest in this data structure has been revitalized by its use as a building block for three novel applications: (1) the Burrows-Wheeler compression algorithm, which is a provably and practically effective compression tool; (2) the construction of succinct and compressed indexes; the latter can store both the input text and its full-text index using roughly the same space used by traditional compressors for the text alone; and (3) algorithms for clustering and ranking the answers to user queries in web-search engines. In all these applications the construction of the suffix array is the computational bottleneck both in time and space. This motivated our interest in designing yet another suffix array construction algorithm which is fast and "lightweight" in the sense that it uses small space.
展开▼