- 3
- 0
- 约7.03千字
- 约 9页
- 2019-04-23 发布于江苏
- 举报
多模式串匹配之AC自动机算法(Aho-Corasick算法)简介与C语言程序实现源码参考
HYPERLINK /zhiwenweb 任侠 发布于 2011-03-22??22:27:53
?一、概述
AC自动机算法全称Aho-Corasick算法,是一种字符串多模式匹配算法。该算法在1975年产生于贝尔实验室,是著名的多模匹配算法之一。AC算法用于在一段文本中查找多个模式字符串,即给你很多字符串,再给你一段文本,让你在文本中找这些串是否出现过,出现过多少次,分别在哪里出现。
该算法应用有限自动机巧妙地将字符比较转化为了状态转移。此算法有两个特点,一个是扫描文本时完全不需要回溯,另一个是时间复杂度为O(n),时间复杂度与关键字的数目和长度无关,但所需时间和文本长度以及所有关键字的总长度成正比。
AC算法有三个主要步骤,一个是字典树tire的构造,一个是搜索路径的确定(即构造失败指针),还有就是模式匹配过程。
学习AC自动机算法之前,最好先熟悉KMP算法,因为KMP算法与字典树tire的构造很是类似。KMP算法是一种经典的单字符串匹配算法。
二、AC算法思想
?
AC算法思想:用多模式串建立一个确定性的树形有限状态机,以主串作为该有限状态机的输入,使状态机进行状态的转换,当到达某些特定的状态时,说明发生模式匹配。
下图是多模式he/ she/ his /hers构成的一个确定性有限
您可能关注的文档
- 四川省成都市美视国际学校2014高中化学 专题二 第一单元 课时1 化学反应速率补充练习 苏教版选修4.doc
- 四川省成都市美视国际学校2014高中化学 第一单元 课时3 元素周期表补充习题 苏教版必修2.doc
- 四川省武胜中学2014-2015学年高二化学上学期第一次月考试题(重点班)(无答案)新人教版.doc
- 四川省武胜中学2014-2015学年高二物理上学期第一次月考试题(普通班)(无答案)新人教版.doc
- 四川省武胜中学2014-2015学年高二政治上学期第一次月考试题新人教版.doc
- 四川省新津中学2015届高三数学上学期期中试题 理.doc
- 四川自贡东方上城前期市场分析与营销策划报告.doc
- 四川省雅安重点中学2014-2015学年高二下学期4月月考 英语.doc
- 固化微生物水体净化器处理酿酒废水实验工程技术报告201211222.doc
- 国家电力需求侧管理培训取证操作手册.doc
原创力文档

文档评论(0)