This document provides an overview of pattern matching algorithms, including the Brute Force algorithm, Knuth-Morris-Pratt (KMP) algorithm, and Boyer-Moore algorithm. It defines pattern matching as finding a pattern string inside a text string. The Brute Force algorithm checks each position in the text for a match, running in O(mn) time. KMP improves on this by shifting the pattern more intelligently using a border/failure function. Boyer-Moore uses a last occurrence function and shifts the pattern based on character mismatches. The document includes Java code examples and explanations of each algorithm.