kbmmw 中的Boyer-Moore算法
2024-09-18 10:20:43
kbmmw 5.10 版本中实现了一个非常好用的字符串搜索算法,即Boyer-Moore算法。
在用于查找子字符串的算法当中,BM(Boyer-Moore)算法是目前被认为最高效的字符串搜索算法,
它由Bob Boyer和J Strother Moore设计于1977年。 一般情况下,比KMP算法快3-5倍。该算法常用于文本编辑器中的搜索匹配功能,
详细的算法原理大家可以参照一下的链接研究。
字符串匹配的Boyer-Moore算法
在kbmmw 里面,我们可以直接使用就OK了。
procedure TForm1.Button1Click(Sender: TObject);
var
alltext,stext:string;
i:integer;
begin
alltext:='HERE IS A SIMPLE EXAMPLE' ;
stext:='EXAMPLE'; i:= TkbmMWBoyerMoore.SearchFor(Tencoding.UTF8.GetBytes(alltext), Tencoding.UTF8.GetBytes(stext) ); memo1.Lines.Add('BoyerMoore search:'+i.ToString); i:= pos(stext,alltext); memo1.Lines.Add('pos:'+i.ToString); end;
运行结果
由于第一个是按字节的,因此以0为基数,结果为17.
最新文章
- EL与Velocity基本语法总结:
- Bootstrap系列 -- 42. 导航条中的按钮、文本和链接
- python2 到 python3 转换工具 2to3
- ubuntu mysql emma中文乱码问题解决
- 爬虫---request+++urllib
- The main difference between Java &; C++(转载)
- C#集合实现接口一览表
- BZOJ4129: Haruna’s Breakfast
- Qt修改xml文件
- POJ 1988
- DBCONN
- Android 属性动画(二)
- vector作为参数的三种传参方式
- 剑指架构师系列-持续集成之Maven实现项目的编译、发布和部署
- 小强的HTML5移动开发之路(20)——HTML5 Web SQL Database
- mybatis 保存对象 参数类型
- [转]mysql和redis的区别
- [django]django model的查询和更新
- JS DOM操作(四) Window.docunment对象——操作内容
- BCB ERROR:[Linker Error] 'XXX.LIB' contains invalid OMF record, type 0x21 (possibly COFF)