朴素字符串匹配算法
参考资料
1 算法导论
朴素字符串匹配
它用一个循环来找出所有有效位移,该循环对 n - m + 1 个可能的每一个 s 值检查条件 P [ 1.. m ] = T [ s+ 1 .. s + m ] 。
这种朴素的字符串匹配过程可以形象的看成用一个包含模式的模板沿文本滑动,同时对每一个位移注意木板上的字符是否与文本中的相应字符相等。
算法实现
NAIVE-STRING-MATCHER( T , P )
1 n ← length[ T ]
2 m ← length[ P ]
3 for s ← 0 to n - m
4 for i ← 0 to m
5 do if T[ s + i] = P[ i ]
6 继续循环
7 else print " 结束循环"
NAIVE-STRING-MATCHER的运行时间为 O ( (n-m+1)m) 。
接下来将继续介绍字符串匹配算法 -- Rabin - Karp算法 。