摘要:前面那么多篇文章都太抽象,这次来一个稍微实际一点的。F模式是我实际上选用的模式,对该模式我做了不少实际的测试,因此代码也算是比较稳定的。不过由于实际上为了得到该算法的效率,算法本身做了一些优化,对于初学者,理解起来可能会有点困难,因此不适合直接贴原始代码。为了便于大家理解,这里出示的代码会比较好读,但是并不能取得我宣称的效果。大家可以在此基础上进行一定的优化,以便达到你所想要的性能。我目前版本的性...
阅读全文
02 2008 档案
摘要:前面一片文章,已经提到了TTMP算法的核心概念,就是“终止符”触发检索。其实这个概念也不是我创造出来的,如果看过编译理论,应该会很熟悉,其实我是偷师其中的归纳法。那么何谓之B模式呢? TTMP -B指的是,在触发对关键字的检索时,从后面往前面检索。比如说: 脏字表: wxyz yz 待检文本: wxyza 当我们遇到了结束符z的时候,我们会回过头来查看刚才到底都遇到了什么文字。由于我们之前的扫描已...
阅读全文
摘要:真是被人言中了,这简直就是一个星战系列。原因很简单,回到我的老本行——算法。这么一个领域,哪怕是芝麻绿豆那么小的问题,我也会发现很多有趣的东西。上一篇前传说完以后,意犹未尽。不过当时还没有更多可写的,而今天突然发现了那么几个问题,于是又可以写出一篇长篇大论了。 事情的缘由是这样的:早上看到XingD的一个修正,赶紧实测一下,把我发现另一些问题修正之后,还是发现有不匹配的状况。后来才发现原来是Xi...
阅读全文
摘要:前面一篇稍微说了一下我自造的TTMP算法思路,貌似很好很强大——估计不是最强的,不过至少我自己觉得比较满意了,至少算是达到可用级别了。那么还有啥好写的呢?好久没有写这种类型的技术文章了,满脑子的想法: 1、除了算法本身,还有什么是效率损耗点? 2、TTMP算法本身也只是讲了一个大概,远没有详细到论文级别,抽空可以给大家详细讲一下。 3、其实上次说到的TTMP算法,还有至少2种实现方式,分别是前向检...
阅读全文
摘要:什么是TTMP算法?不好意思,我发布这篇文章之前,估摸是没有其他地方能找着该算法的,因为那是俺生造的。 TTMP是啥意思呢?是Terminator Triggered Multi-Pattern 的意思,也就是结束符触发多模式算法。 -_-! 有点难理解,没关系,看完了也许就理解了。 不过这个自造的算法有点复杂,为了保证大家能够顺利阅读,请大家配合做一个测试: 拿出你的手表,或者其他计时器,看看...
阅读全文