Abstract
This paper considers how many character comparisons are needed to find all occurrences of a pattern of length m in a text of length n. The main contribution is to show an upper bound of the form of n + O(n/m) character comparisons, following preprocessing. Specifically, we show an upper bound of n + 8/3(m+1)(n - m) character comparisons. This bound is achieved by an online algorithm which performs O(n) work in total and requires O(m) space and O(m2) time for preprocessing. The current best lower bound for online algorithms is n + 16/7m+27(n - m) character comparisons for m = 16k + 19, for any integer k ≥ 1, and for general algorithms is n + 2/m+3 (n - m) character comparisons, for m = 2k + 1, for any integer k ≥ 1.
Original language | English (US) |
---|---|
Pages (from-to) | 803-856 |
Number of pages | 54 |
Journal | SIAM Journal on Computing |
Volume | 26 |
Issue number | 3 |
DOIs | |
State | Published - Jun 1997 |
Keywords
- Comparisons
- Exact complexity
- Periodicity
- String matching
ASJC Scopus subject areas
- General Computer Science
- General Mathematics