The Brute Force Algorithm

The KMP Algorithm

The Boyer Moore Algorithm