Unit SS, Part B: String Matching, Naive Algorithm
- O(mn) since can try entire pattern at each position in text
string
- Definitions
- i = index over text where a match might start(1<=i<=n)
- j = index over pattern (1<=j<=m)
- k= index over text as try to match
Example of Matching Pattern Against Text
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(match,full-match,advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(no-match, advance-pattern-1)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
...