Jewels Of Stringology: Text AlgorithmsThe term “stringology” is a popular nickname for text algorithms, or algorithms on strings. This book deals with the most basic algorithms in the area. Most of them can be viewed as “algorithmic jewels” and deserve reader-friendly presentation. One of the main aims of the book is to present several of the most celebrated algorithms in a simple way by omitting obscuring details and separating algorithmic structure from combinatorial theoretical background. The book reflects the relationships between applications of text-algorithmic techniques and the classification of algorithms according to the measures of complexity considered. The text can be viewed as a parade of algorithms in which the main purpose is to discuss the foundations of the algorithms and their interconnections. One can partition the algorithmic problems discussed into practical and theoretical problems. Certainly, string matching and data compression are in the former class, while most problems related to symmetries and repetitions in texts are in the latter. However, all the problems are interesting from an algorithmic point of view and enable the reader to appreciate the importance of combinatorics on words as a tool in the design of efficient text algorithms.In most textbooks on algorithms and data structures, the presentation of efficient algorithms on words is quite short as compared to issues in graph theory, sorting, searching, and some other areas. At the same time, there are many presentations of interesting algorithms on words accessible only in journals and in a form directed mainly at specialists. This book fills the gap in the book literature on algorithms on words, and brings together the many results presently dispersed in the masses of journal articles. The presentation is reader-friendly; many examples and about two hundred figures illustrate nicely the behaviour of otherwise very complex algorithms. |
Contents
1 | |
2 Basic string searching algorithms | 19 |
3 Preprocessing for basic searchings | 33 |
4 Online construction of suffix trees | 45 |
5 More on suffix trees | 59 |
6 Subword graphs | 69 |
7 Text algorithms related to sorting | 85 |
8 Symmetries and repetitions in texts | 111 |
11 Automatatheoretic approach | 163 |
12 Approximate pattern matching | 183 |
13 Matching by dueling and sampling | 199 |
14 Twodimensional pattern matching | 209 |
15 Twodimensional periodicities | 225 |
16 Parallel text algorithms | 249 |
17 Miscellaneous | 271 |
Bibliography | 285 |
Other editions - View all
Common terms and phrases
2D-period 2dpda alphabet applied Assume automata automaton basic BM algorithm Boyer-Moore algorithm Chapter codewords columns complexity computed consider constant construction corresponding Crochemore data compression DAWG defined denote deterministic dictionary duels edges edit distance efficient encoding essential nodes example factors Fibonacci words Figure function Galil graph grid graph Huffman coding Huffman tree i-th input integer iteration labeled LCPref Lemma length letter linear linear-time linear-time algorithm longest common subsequence maximal suffix mismatch non-empty non-periodic O(log O(n log occurrences on-line optimal parallel palindromes palstar parallel algorithms pat[j path pattern matching period position powerset construction PRAM prefix prefix code preprocessing quad-I Rytter sample segment shift shortest common superstring stack string matching string-matching algorithm string-matching problem sub-array subtrees subword suffix links suffix tree teact teat teatſi tert text array Theorem Tree(II two-dimensional pattern matching Ukkonen vectors Vishkin witness table