Suffix tree and suffix array are data structures that allow fast search in a large static text. By using the suffix tree data structure we can find all k occurrences of a pattern w in a text of length n in time O(|w| + k). The same problem can be solved by using the suffix array data structure in time O(|w| + log(n) + k). Thus suffix trees perform better than suffix arrays with respect to the search time. On the other hand suffix trees require as much as four times more memory space than suffix arrays. We propose a new data structure, the augmented suffix array, that allows searching in O(|w| + log log(n) + k) time and requires about the same memory space as the suffix array. Moreover, in case of very large texts, most of the new data structure and the text itself can be stored in secondary memory without compromising search operation efficiency. This is not the case for both suffix trees and suffix arrays.
A time and space efficient data structure for string searching on large texts
COLUSSI, LIVIO;
1996
Abstract
Suffix tree and suffix array are data structures that allow fast search in a large static text. By using the suffix tree data structure we can find all k occurrences of a pattern w in a text of length n in time O(|w| + k). The same problem can be solved by using the suffix array data structure in time O(|w| + log(n) + k). Thus suffix trees perform better than suffix arrays with respect to the search time. On the other hand suffix trees require as much as four times more memory space than suffix arrays. We propose a new data structure, the augmented suffix array, that allows searching in O(|w| + log log(n) + k) time and requires about the same memory space as the suffix array. Moreover, in case of very large texts, most of the new data structure and the text itself can be stored in secondary memory without compromising search operation efficiency. This is not the case for both suffix trees and suffix arrays.Pubblicazioni consigliate
I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.




