Approximate string matching in sublinear expected time - Chang, W.I.; Lawler, E.L. (Foundations of Computer Science, 31st Symposium, 1990)
The k differences approximate string matching problem specifies a text string of length n, a pattern string of length m, and the number k of differences (insertions, deletions, substitutions) allowed in a match, and asks for every location in the text where a match occurs. Previous algorithms required at least O(nk) time. When k is as large as a fraction of m, no substantial progress has been made over O(nm) dynamic programming. The authors have investigated much faster algorithms for restricted cases of the problem, such as when the text string is random and errors are not too frequent. They have devised an algorithm that, for k<m/log n+O(1), runs in time O((n/m)k log n) on the average. In the worst case their algorithm is O(nk), but it is still an improvement in that it is very practical and uses only O(n) space compared with O(n) or O(n/sup 2/). The authors define an approximate substring matching problem and give efficient algorithms based on their techniques. Special cases include several applications to genetics and molecular biology.< >