总览
| 算法 | 简述 | 空间复杂度 | 时间复杂度 | 极端时间复杂度 | |
|---|---|---|---|---|---|
| Brute Force(BF) | 顺序模式串匹配算法 | - | < O(nm)) | O(nm)) | |
| Boyer-Moore(BM) | 基于后缀匹配的模式串匹配算法 | - | O(n/(m+1) | O(mn) | |
| Horspool | 匹配窗口的最后一个字符跟模式串中的最后一个字符比较 | - | O(n) | O(mn) | |
| Sunday | 在匹配失败时关注的是文本串中参加匹配的最末位字符的下一位字符。如果该字符没有在匹配串中出现则直接跳过,即移动步长=匹配串长度+1;否则,同BM算法一样其移动步长=匹配串中最右端的该字符到末尾的距离+1 | - | O(n) | O(mn) | |
| Knuth-Morris-Pratt(KMP) | 高效的前缀匹配算法 | - | O(m+n) | - | |
| Rabin-Karp(RK) | 过哈希算法对主串中的n-m+1个子串分别求哈希值 | - | O(n) | ||
| Aho-Corasick(AC) | 应用有限自动机的状态转移来模拟字符的比较 | - | - | - |