导航:首页 > 源码编译 > 算法线性匹配

算法线性匹配

发布时间:2025-09-02 18:47:23

㈠ 想知道bm是什么意思呢

BM是一种匹配算法

BM算法被认为是亚线性串匹配算法,它在最坏情况下找到模式所有出现的时间复杂度为O(mn),在最好情况下执行匹配找到模式所有出现的时间复杂度为O(n/m)。

BM算法主要思想描述如下:

模式字符串的匹配顺序是从右向左。

1、首先将P和T对齐,即p和t对齐。

2、然后匹配从模式字符串P的最右端字符开始,即判断p[m]和t[m]是否匹配。

如果匹配成功,则向左移动判断p[m-1]和t[m-1]是否匹配,如此循环下去;如果匹配不成功,则进行字符串滑移。

BM算法的原理:

不同于朴素模式(brute-force search)的逐个字符对比,Boyer-Moore充分使用预处理 P的信息来尽可能跳过更多的字符。通常,我们比较一个字符串都是从首字母开始,逐个比较下去。一旦发现有不同的字符,就需要从头开始进行下一次比较。

这样,就需要将字串中的所有字符一一比较。Boyer-Moore算法的关键在于,当 P的最后一个字符被比较完成后,我们可以决定跳过一个或更多个字符。如果最后一个字符不匹配,那么就没必要继续比较前一个字符。

如果最后一个字符未在 P中出现,那么我们可以直接跳过 T的n个字符,比较接下来的n个字符,n为 P的长度(见定义)。

如果最后一个字符出现在 P中,那么跳过的字符数需要进行计算(也就是将 P整体往后移),然后继续前面的步骤来比较。通过这种字符的移动方式来代替逐个比较是这个算法如此高效的关键所在。

阅读全文

与算法线性匹配相关的资料

热点内容
積架小型空气压缩机 浏览:550
绿盾文档加密系统哪里有卖 浏览:632
我的世界怎么开挂在服务器里面 浏览:784
西门子自锁正反转编程图 浏览:742
出国英语pdf 浏览:914
算法线性匹配 浏览:669
山东省dns服务器云主机 浏览:549
安卓5g软件怎么隐藏 浏览:834
编译内核空间不足开不了机 浏览:882
汉纪pdf 浏览:469
在哪里下载国家医保app 浏览:651
没有与文件扩展关联的编译工具 浏览:421
我的世界反编译mcp下载 浏览:15
安卓手柄下载什么软件 浏览:64
pushrelabel算法 浏览:844
硬盘资料部分文件夹空白 浏览:612
cssloader的编译方式 浏览:934
java面板大小 浏览:499
怎么用命令方块打出字体 浏览:495
台湾加密货币研究小组 浏览:291