BM算法是Boyer-Moore算法的简称,由Boyer 和Moore提出。被认为在一般的应用中为最有效的字符串匹配算法。
举例:在文本串S="A simple example"中搜索模式串T="example",BM算法是从后向前搜索首先比较S[6]和T[6],如下图:
匹配失败,T下标加1,继续匹配,如下图:
这次匹配成功四个,在S[3]和T[2]相比处停下来,我们把这四个加到T前面作为辅助。如下图:
T从T[0]跳到和S[4],匹配从T[9]相比S[13]开始,如下图:
上图匹配一开始就失败,T下标加1,再匹配,又失败,再加1,匹配成功,如下图:
算法有时间再贴出来~~(PS:那天学画图没白费,今天一下子就画好了~ 嘿嘿 ^_^)
分享到:
相关推荐
BM算法的相关资源吧,前两天看的,和大家分享
将算法图解化,让人更容易理解,增加学习趣味
图解欧几里得算法 图解欧几里得算法 图解欧几里得算法
BM算法被认为是亚线性串匹配算法,它在最坏情况下找到模式所有出现的时间复杂度为O(mn),在最好情况下执行匹配找到模式所有出现的时间复杂度为O(n/m)。
算法图解的源代码,包含各种不同语言的算法实现方法,具体算法包括:二分查找的方式和实现、选择排序实现、递归实现、快速排序实现、散列表实现、广度优先搜索实现、最短路径算法实现、贪婪算法解析、动态规划等一...
算法动画图解1.2.7 简体中文解锁版,安卓手机系统使用版本,为了方便各位朋友
本教程是使用Java来讲解数据结构和算法,考虑到数据结构和算法较难,授课采用图解加算法游戏的方式。内容包括: 稀疏数组、单向队列、环形队列、单向链表、双向链表、环形链表、约瑟夫问题、栈、前缀、中缀、后缀...
完整代码没有,不过文档里带有人机对战算法分析,附有图解及关键算法有举例分析,这片文章对一些为五子棋人机对战算法无头绪的人来说,绝对是个好东西
适合想了解基础算法的前端开发人员
数据结构是程序员应精通的一门技术,而算法部分又是这门课程的重中之重。...而该数据结构算法图解详细的介绍了数据结构涵盖的所有算法,对帮助大家理解算法并应用到实际中去又很大作用。相信,它将是你学习的好帮手!
正在看《图解算法》这本书的朋友欢迎下载进行学习~
A book introduce algorithms.
图解图的各种算法,判定数,二叉排序树的查找过程,大根堆、小根堆的建立,矩阵存储的表示,线性表链表的删除插入
算法图解学习笔记,算法图解学习笔记,算法图解学习笔记,算法图解学习笔记
学习和复习算法的朋友,可以查考一下这个动画,然后自己手写代码加深印象。
数据结构与算法图解.docx
图解机器学习算法matlab实现完整源码(课程设计).zip已获导师指导并通过的97分的高分课程设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 图解机器学习算法matlab实现完整源码...
数据结构书里面的各种算法的详细图解
NULL 博文链接:https://128kj.iteye.com/blog/1715073
算法图解-python,算法图解python3源码