字符串查找与匹配之BM算法

Posted zengblogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串查找与匹配之BM算法相关的知识,希望对你有一定的参考价值。

一、字符串查找:
1、在Word、 IntelliJ IDEA、Codeblocks等编辑器中都有字符串查找功能。
2、字符串查找算法是一种搜索算法,目的是在一个长的字符串中找出是否包含某个子字符串。

二、字符串匹配:
1、一个字符串是一个定义在有限字母表上的字符序列。
例如,ATCTAGAGA是字母表 E ={A,C,G,T}上的一个字符串。
2、字符串匹配算法就是在一个大的字符串T中搜索某个字符串P的所有出现位置。
其中,T称为文本,P称为模式,T和P都定义在同一个字母表E上。
3、字符串匹配的应用包括信息检索、拼写检查、语言翻译、数据压缩、网络入侵检测。

三、字符串查找与匹配算法:
1、朴素查找算法(Naive string search algorithm)
2、KMP算法(Knuth-Morris- -Pratt algorithm)
3、BM算法(Boyer-Moore string search algorithm)

问题:
给定一个文本T字符串和一个模式P字符串, 查找P在T中的位置。
记号:
m、n:分别表示T和P的长度。
E:T和P的字符都定义在同一个字母集E上。
Ti、Pj: T的第i个字符和P的第j个字符(以0起始)。其中0≤i<m,0≤j<n

(三)BM算法:

以上是关于字符串查找与匹配之BM算法的主要内容,如果未能解决你的问题,请参考以下文章

字符串匹配算法-BM

字符串匹配的Boyer-Moore(BM)算法

算法——字符串匹配之BM算法

BM算法详解

算法——蛮力法之顺序查找和蛮力字符串匹配

字符串查找与匹配算法