Algorithm
xlxxcc
这个作者很懒,什么都没留下…
展开
-
字符串的模式匹配: BF算法
暴风(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。 BF算法是一种蛮力算法。蛮力搜索,比较简单的一种字符串匹配算法,在处理简单的数据时候就可以用这种算法,完全匹配,就是速度慢啊。基原创 2017-03-17 15:10:15 · 7958 阅读 · 0 评论 -
字符串的模式匹配:KMP算法
KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针原创 2017-03-17 19:14:29 · 9833 阅读 · 1 评论 -
字符串的模式匹配:Horsepool算法
Horsepool算法是Boyer-Moore算法的简化版本,这也是一个空间换时间的典型例子。算法把模式P和文本T的开头字符对齐,从模式的最后一个字符开始比较,如果尝试比较失败了,它把模式向后移。每次尝试过程中比较是从右到左的。 Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有sub-linear亚线性时间复杂度。Horspool 算法思想: 对于每个搜索窗口,该算原创 2017-03-20 11:25:11 · 7013 阅读 · 0 评论 -
字符串的模式匹配:Sunday 算法
Sunday算法是Daniel M.Sunday于1990年提出的字符串模式匹配。其核心思想是:在匹配过程中,模式串发现不匹配时,算法能跳过尽可能多的字符以进行下一步的匹配,从而提高了匹配效率。其效率在匹配随机的字符串时比其他匹配算法还要更快。Sunday算法的实现可比KMP,BM的实现容易太多。 要理解Sunday算法,建议先阅读《字符串的模式匹配: BF算法》、《字符串的模式匹配:KMP原创 2017-03-19 01:31:08 · 6517 阅读 · 0 评论 -
字符串的模式匹配:BM算法
1977年,Robert S.Boyer和J Strother Moore提出了另一种在O(n)时间复杂度内,完成字符串匹配的算法,其在绝大多数场合的性能表现,比KMP算法还要出色,下面我们就来详细了解一下这一出色的单模式匹配算法,在此之前推荐读者读一下我的另一篇文章《字符串的模式匹配:KMP算法》,对于透彻理解BM算法大有裨益。 BM算法之所以能够在单模式匹配中有更加出色的表现,主要是其使原创 2017-03-19 15:38:03 · 9278 阅读 · 2 评论 -
字符串的模式匹配:RK算法
RK算法是由Rabin和Karp共同提出的一个算法。 RK算法是对BF算法的一个改进:在BF算法中,每一个字符都需要进行比较,并且当我们发现首字符匹配时仍然需要比较剩余的所有字符。而在RK算法中,就尝试只进行一次比较来判定两者是否相等。 RK算法也可以进行多模式匹配,在论文查重等实际应用中一般都是使用此算法。 时间复杂度:O(MN)(实际应用中往往较快,期望时间为O(M+N))R原创 2017-03-20 15:00:20 · 9887 阅读 · 0 评论 -
DoubleArrayTrie : DAT双数组Trie树
本文参考: http://www.cnblogs.com/ooon/p/4883159.html推荐: 码农场的《双数组Trie树(DoubleArrayTrie)Java实现》 外文《An Implementation of Double-Array Trie》DoubleArrayTrie 双数组Tire树是Tire树的升级版,Tire取自英文Retrieval中的一部分,即检索树,又称作原创 2017-03-28 14:15:52 · 15176 阅读 · 0 评论 -
字符串多模式匹配:AC算法
早在1975年贝尔实验室的两位研究人员Alfred V. Aho 和Margaret J. Corasick就提出了以他们的名字命名的高效的匹配算法—AC算法。该算法几乎与《KMP算法》同时问世。与KMP算法相同,AC算法时至今日仍然在模式匹配领域被广泛应用。 AC算法是一个经典的多模式匹配算法,可以保证对于给定的长度为n的文本,和模式集合P{p1,p2,…pm},在O(n)时间复杂度原创 2017-03-21 19:17:22 · 26281 阅读 · 4 评论