相信积累的力量

摘要: 转自:http://blog.csdn.net/zdl1016/archive/2009/10/11/4654061.aspx我想说一句“我日,我讨厌KMP!”。KMP虽然经典,但是理解起来极其复杂,好不容易理解好了,便起码来巨麻烦!老子就是今天图书馆在写了几个小时才勉强写了一个有bug的、效率不高的KMP,特别是计算next数组的部分。其实,比KMP算法速度快的算法大把大把,而且理解起来更简单,为何非要抓住KMP呢?笔试出现字符串模式匹配时直接上sunday算法,既简单又高效,何乐而不为?说实话,想到sunday算法的那个人,绝对是发散思维,绝对牛。当我在被KMP折磨的够呛的时候,我就琢磨, 阅读全文
posted @ 2013-04-02 15:55 ThreeF 阅读(169) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/iJuliet/article/details/4200771 阅读全文
posted @ 2013-04-02 15:47 ThreeF 阅读(135) 评论(0) 推荐(0) 编辑
摘要: BM模式匹配算法原理(图解)首先,先简单说明一下有关BM算法的一些基本概念。BM算法是一种精确字符串匹配算法(区别于模糊匹配)。BM算法采用从右向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。BM算法的基本流程: 设文本串T,模式串为P。首先将T与P进行左对齐,然后进行从右向左比较 ,如下图所示: 若是某趟比较不匹配时,BM算法就采用两条启发式规则,即坏字符规则 和好后缀规则 ,来计算模式串向右移动的距离,直到整个匹配过程的结束。 下面,来详细介绍一下坏字符规则 和好后缀规则 。 首先,诠释一下坏字符和好后缀的概念。 请看下图: 图中,第一个不 阅读全文
posted @ 2013-04-02 09:23 ThreeF 阅读(325) 评论(0) 推荐(0) 编辑
摘要: BM字符串匹配算法http://www.cnblogs.com/dsky/archive/2012/05/04/2483190.html在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前相当有效又容易理解的一种,一般情况下,比KMP算法快3-5倍。BM算法在移动模式串的时候是从左到右,而进行比较的时候是从右到左的。BM算法实际上包含两个并行的算法,坏字符算法和好后缀算法。这两种算法的目的就是让模式串每次向右移动尽可能大的距离(j+=x,x尽可能的大)。几个定义:例主串和模式串如下:主串 : mahtavaatalomaisema omalomailuun模式串: maise 阅读全文
posted @ 2013-04-02 09:00 ThreeF 阅读(274) 评论(0) 推荐(0) 编辑

相信积累的力量