☰
图解常见匹配算法
2026/10/27 18:16:47 网站建设 项目流程

前言

常见匹配算法有BF算法,RK算法,KMP算法,BM算法,Sunday算法

参考资料,很好的文档,值得细细品尝

BF算法

代码部分

逻辑图

RK算法

代码部分

数据调试

逻辑图

摘自霍纳法则

假设有n+2个实数a0,a1,…,an,和x的序列,要对多项式Pn(x)= anxn +an-1xn-1+…+a1x+a0求值,直接方法是对每一项分别求值,并把每一项求的值累加起来,这种方法十分低效,它需要进行n+(n-1)+…+1=n(n+1)/2次乘法运算和n次加法运算。有没有更高效的算法呢?答案是肯定的。通过如下变换我们可以得到一种快得多的算法,即Pn(x)= anxn +an-1xn-1+…+a1x+a0=((…(((anx+an-1)x+an-2)x+ an-3)…)x+a1)x+a0,这种求值的安排我们称为霍纳法则。

KMP算法

代码部分

关于next数组/前缀表

逻辑图

BM算法

关于坏字符和好后缀

BMH版本(只用坏字符表)

完整版本

逻辑图

Sunday算法

代码部分

逻辑图

代码部分

代码传送门

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询