Skip to Main Content
In this paper, two single pattern matching algorithms are presented, each of which is composed by a smallest suffix automaton and a forward finite state automaton. Whatever the suffix automaton or the forward finite state automaton is running, the window shifts m-R characters and then the suffix automaton starts running if no pattern prefix is found (R is zero) in the first algorithm or R is not greater than half of m in the second algorithm, otherwise, the forward finite state automaton starts running. Their time complexities are all O(n) in the worst case and O(n/m) in the best case. The experimental results show that the average time complexities of two algorithms are less than that of RF and LDM for short patterns and that of BM for long patterns over small alphabets or short lengths over large alphabets.