Analysis of Pattern Searching Algorithms and Their Application

Nowadays data is growing tremendously. Therefore, there is a great need to store and process data. The problem of Pattern Searching has different applications. When searching for text or words in computer application systems, Pattern searching is used to display the search results. The purpose of Pattern searching is to find text within another text. For example, searching for text in books will take a long time and is hard work. Using Pattern searching will save you time and effort. If similar words are found within the requested text, it will underline the word similar to what was requested, otherwise it does not display any matches if there are no similar words within a text.  This paper presents comparisons of the speed of different Pattern searching algorithms, precisely the Naive, KMP, Rabin-Karp, Finite Automata, Boyer-Moore, Aho-Corasick, Z Algorithm algorithms. We will test the time complexity of these algorithms in the three programming languages C#, Java and Python using three different CPUs. According to the results that appear in this comparison, we are able to perform the comparison between the programming languages and the comparison between the CPUs used in this research.