The document discusses various algorithms for pattern searching in a text, including: 1. Naive pattern searching which slides the pattern over the text and checks for matches in O(nm) time in worst case. 2. KMP algorithm which uses a preprocessing step to construct a lps array to avoid rematching characters, improving worst case to O(n). 3. Rabin-Karp algorithm which computes hashes of patterns and substrings to quickly eliminate non-matching candidates before character matching. 4. Finite automata based algorithm which preprocesses the pattern to construct a state machine, allowing searches in O(n) time.