Unit SS, Part B: String Matching, Knuth-Morris-Pratt

Example of Searching for Pattern in Text

KMP ALGORITHM (never decrease k)
ababaxabracabracadabratcadabrax
abracadabra
^(match)
ababaxabracabracadabratcadabrax
abracadabra
 ^(match)
ababaxabracabracadabratcadabrax
abracadabra
  ^(no-match, next[r]=1)
ababaxabracabracadabratcadabrax
  abracadabra
  ^(match)
ababaxabracabracadabratcadabrax
  abracadabra
   ^(match)
ababaxabracabracadabratcadabrax
  abracadabra
    ^(no-match, next[r]=1)
ababaxabracabracadabratcadabrax
    abracadabra
    ^(match)
ababaxabracabracadabratcadabrax
    abracadabra
     ^(no-match, next[b]=1)
ababaxabracabracadabratcadabrax
     abracadabra
     ^(no-match, next[a]=0)
ababaxabracabracadabratcadabrax
      abracadabra
      ^(match)
ababaxabracabracadabratcadabrax
      abracadabra
       ^(match)
ababaxabracabracadabratcadabrax
      abracadabra
        ^(match)
ababaxabracabracadabratcadabrax
      abracadabra
         ^(match)
ababaxabracabracadabratcadabrax
      abracadabra
          ^(match)
ababaxabracabracadabratcadabrax
      abracadabra
           ^(match)
ababaxabracabracadabratcadabrax
      abracadabra
            ^(no-match, next[d]=2)
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,j=resume=5)
ababaxabracabracadabratcadabrax
                  abracadabra
                      ^(no-match, next[c]=2)
ababaxabracabracadabratcadabrax
                     abracadabra
                      ^(no-match, next[b]=1)
ababaxabracabracadabratcadabrax
                      abracadabra
                      ^(no-match, next[a]=0)
ababaxabracabracadabratcadabrax
                       abracadabra
                       ^(no-match, next[a]=0)
ababaxabracabracadabratcadabrax
                        abracadabra
                        ^(match)
ababaxabracabracadabratcadabrax
                        abracadabra
                         ^(no-match, next[b]=1)
ababaxabracabracadabratcadabrax
                         abracadabra
                         ^(no-match, next[a]=0)
...