常用字符串搜索算法介绍

常用字符串搜索算法介绍

字符串搜索或匹配是经常用到的技术,因此也发展了多个算法,介绍几个著名的算法。

1.单模式匹配

就是在一些文本中查找某一个子字符串的算法,效率较高的有以下几种。

KMP算法:全称Knuth-Morris-Pratt算法 预处理时间Θ(m) 匹配搜索时间 Θ(n)

BM算法:全称Boyer-Moore string search algorithm 预处理时间Θ(m + |Σ|) 匹配搜索时间Ω(n/m), O(n)

2. 有限模式集合匹配

就是在字符串中查找多个子字符串的算法,常用于查找字典中的单词和一些脏字匹配算法

Aho-Corasick算法:这是一种字典匹配算法,它用于在输入文本中查找字典中的字符串。时间复杂度是线性的。

基本原理:该算法利用类似后缀树的方法构造一个trie结构,匹配时利用该结构来搜索。


Commentz-Walter 算法:详细未知

Rabin-Karp string search算法:该算法最差复杂度不好,因此运用的并不广泛。

以上资料来源于维基百科,感兴趣的可以搜索维基百科词条String searching algorithm以获取更多信息。

posted on 2009-02-26 22:00  absolute  阅读(1008)  评论(0编辑  收藏  举报

导航