字符串匹配之Horspool算法
Boyer-Moore-Horspool
是一种 字符串匹配 算法,它将从 模式的末尾 到开始比较字符。其首先检查与最后一个模式字符对齐的文本字符,当字符 不匹配 时,搜索跳到模式中的 下一个匹配 位置;如果都不匹配,将模式向前移动直到匹配为止。换句话说,Boyer-Moore-Horspool算法是一种在字符串中查找子字符串的算法。
Horspool算法由Nigel Horspool在1980年发表,Nigel Horspool是维多利亚大学的计算机科学教授。该算法时基于Boyer Moore字符串搜索算法的研究,与Knuth Morris Pratt算法相关,旨在创建一种更高效的算法,在最坏情况下达到原始复杂度。
horspool算法将主串中 匹配窗口 的最后一个字符跟模式串中的最后一个字符比较。如果相等,继续从后向前对主串和模式串进行比较,直到完全相等或者在某个字符处不匹配为