next up previous
Next: Up: Previous:

Naive String Matching



Naive(T, P)
   n = length(T)
   m = length(P)
   for s = 0 to n-m                     O(n-m+1)
      if P[1..m] = T[s+1..s+m]              O(m)
      then print "Pattern occurs with shift" s

This algorithm takes O((n-m+1)m) time.

Example



However, there is more information in a failed match:

T: a a a a b a a ...
P: a a a a a      

s = s + m
No need to consider s+1, .., s+(m-1)


next up previous
Next: Up: Previous: