`
isiqi
  • 浏览: 16027350 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

一个字符串搜索的Aho-Corasick算法

阅读更多

Aho和Corasick对KMP算法(Knuth–Morris–Pratt algorithm)进行了改进,Aho-Corasick算法(Aho-Corasick algorithm)利用构建树,总时间复杂度是O(n)。原理图如下(摘自Aho-Corasick string matching in C#):

Building of the keyword tree (figure 1 - after the first step, figure 2 - tree with the fail function)

C#版本的实现代码可以从Aho-Corasick string matching in C#得到,也可以点击这里获得该算法的PDF文档。

这是一个应用示例:

预览图

它能将载入的RTF文档中的搜索关键字高亮,检索速度较快,示例没有实现全字匹配,算法代码简要如下:

示例下载页面:http://www.uushare.com/user/m2nlight/file/2722093

StringSearch.7z
StringSearch.7z
类型:7Z 压缩文件
大小:32.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics