假设主串:a b a b c a b c a c b a b
子串:a b c a c
1、一般匹配算法
逐个字符的比较,匹配过程如下:
第一趟匹配
a b a b c a b c a c b a b
a b c
第二趟
a b a b c a b c a c b a b
a
第三趟
a b a b c a b c a c b a b
a b c a c
第四趟
a b a b c a b c a c b a b
a
第五趟
a b a b c a b c a c b a b
a
第六趟
a b a b c a b c a c b a b
a b c a c
匹配成功。
性能分析:情况好:时间复杂度O(m+n);情况差:时间复杂度O(m*n)。
2、一般匹配算法改进
即KMP算法。可以发现上面的算法,每一趟匹配过程中出现字符不等时,回溯指针