Sunday算法的java实现
Sunnday算法简介
一个示例
java实现
Sunday算法简介
Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其核心思想是:在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。 —— [ 百度百科 ]
相比于另外几个著名的字符串匹配算法,KMP以及BM算法而言,Sunday算法不仅理解起来比较容易,而且往往能有更好的速度。上面的描述可能太过于抽象,下面介绍一个简单的例子,来理解一下Sunday算法的基本思想。
一个示例
考虑被匹配字符串abcdebcdb,匹配字符串bcde
这里记被匹配字符串的位置为i,匹配字符串的位置为j
第一步,将两个字符串首对齐:
abcdebcdb
bcde
发现a与b不匹配,随后考虑i+匹配字符串长度的位置上的字符串是