当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]基于QS的字符串匹配改进算法

串匹配问题是计算机科学领域研究中的一个焦点问题,它在诸多非数值处理方面都有着非常广泛的应用。串匹配就是在一个大的正文T中搜索指定模式P的所有出现位置。按照功能,串匹配算法主要分为三类:精确串匹配算法、近似串匹配算法和正则表达式算法。其中,最有影响的是KMP算法、BM算法、RK随机算法和SUANDAY算法以及由此而产生的一些改进算法。在实际应用中,这些算法都各有千秋,各有侧重。

1  BM和QC算法分析

字符串匹配问题描述:

1.1 BM算法

BM是由Boyer和Moore于1977年提出的,它是一种简单、快速、通用的工程算法。它的特点是在窗口内部从右向左逆向匹配,采用坏字符启发和好后缀启发两种方法,通过预处理模式分别计算BadcharShift[char]和GoodSufShift[char]转移表。当发现不匹配时,选择两者中的最大值作为模式向右移动的距离。

BM算法的预处理分为坏字符转移表和好后缀转移表。

坏字符移动表记录的是字符char在模式串P中的最右出现位置。具体表述为:

BM算法的空间复杂度和预处理时间均为O(m+σ)。在最坏情况下,它的时间复杂度为O(nm);在最好情况下,时间复杂度为O(n/m)。

从理论上讲,BM算法的时间复杂度要大大高于KMP算法的时间复杂度O(m+n),但在实际应用中,BM算法的搜索步长接近于模式长度m,所以执行效率非常高。

1.2 QS算法

QS算法是一种简单、快速、实用的算法。在模式匹配过程中,该算法将发生失配的字符与计算右移量两者独立开来的现象,其仅利用T[i+m]字符计算BadcharShift[T[i+m]]来决定模式转移。通常情况下,模式转移量为m+1,这大大提高了算法的搜索步长和匹配效率。

QS算法的预处理与BM算法的对坏字符启发的预处理相同。

QS算法的匹配过程如下:

QS算法的空间复杂度和预处理时间均为O(m+σ)。在最坏情况下,它的时间复杂度为O(mn);在最好情况下,时间复杂度为O(n/m+1)。

QS算法利用了失配情况下T[i+m]字符引起的Badchar-

Shift[T[i+m]]使其编码简单且调试迅速。通常情况下,QS算法比BM算法要快,但是当T[i+m-1]不在模式中,而T[i+m]在模式中时,QS算法的效率就会大打折扣。

2  新算法

2.1 算法基本思想及步骤

本文在上述分析的基础上,充分挖掘了其潜在可利用的隐含信息,进一步优化和完善了QS算法。在预处理方面,新算法与QS算法基本相同,不同的是当模式在当前模式匹配窗口内自右向左匹配正文的过程中发生失配时,比较正文中T[i+m]和T[i+m-1]这两个字符的移动距离,取其最大值进行移动,然后在新位置重新开始模式匹配。图1为一个新算法匹配过程示例。
 

新算法的匹配过程如下:

新算法在QS算法的基础上,充分利用了失配时T[i+m-1]和T[i+m]两个字符引起的移动距离的最大值,使得移动距离增大,减少了模式匹配的比较次数。通常情况下,新算法的时间复杂度为O(n/m+1)。

2.2 性能测试

针对本文提出的新算法,从参考文献[1]中抽取chapter 32 STring Matching中第一段内容作为测试正文,并在同样的软硬件环境下对BF、BM、QS和新算法进行比较,以检测新算法在性能和效率方面的表现。表1为各种算法性能比较结果。

测试正文:

Finding all occurrences of a pattern in a text is a problem that arises frequently in text editing programs.Typically,the text is a document being edited,and the pattern searched for is a particular word supplied by the user.Efficiedt algorithms for this problem can greatly aid the respONsiveness of the test editing program.String matching algorithms are also used,for example,to search for particular patterns in DNA sequences.

搜索模式:the pattern searched

由表1可知:新算法是一种比较次数少、耗时小、效率高的快速字符串匹配算法。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

韩国大田2024年5月9日 /美通社/ -- 机器人平台专业公司Rainbow Robotics(首席执行官Jungho Lee)将从5月8日起开启移动双臂机器人RB-Y1的预售。

关键字: 移动 双臂机器人 ROBOTICS AI

全面激活120帧画质 穿云入海畅游立体幻想大世界 上海2023年9月21日 /美通社/ -- 专业的视觉处理方案提供商逐点半导体宣布,其与全球领先的游戏研发公司网...

关键字: 半导体 显示技术 移动 SDK

新加坡2023年9月15日 /美通社/ -- SAI.TECH Global Corporation(以下简称 "SAI.TECH "或 "SAI "或 "公司"...

关键字: AI 移动 TE 数据中心

舍弗勒和VDL计划合作开发和生产用于公共交通的新一代自动驾驶电动穿梭巴士 Mobileye将为穿梭巴士提供SAE 4级自动驾驶系统 舍弗勒(B3展厅/B40展台)和VDL Groep(B3展厅/B21展台)...

关键字: 自动驾驶 移动 MOBILEYE 生态系统

(全球TMT2023年9月1日讯)近日,由中国移动通信集团浙江有限公司联合中国移动云能力中心共同举办的2023移动云城市发布会·浙江站在杭州落幕,本次大会面向浙江地区发布了中国移动信创云电脑,并正式开启移动云助力浙江数...

关键字: 移动 中国移动 电脑 移动通信

北京2023年9月5日 /美通社/ -- 世界贸易组织总干事伊维拉在2023年服贸会上表示,服务业在全球GDP中的比重达到67%,世界经济越来越以服务为中心。联合国贸易和发展会议秘书长格林斯潘也表示,服务贸易有可能重塑全...

关键字: 网络 移动 汽车 可持续发展

北京2023年9月4日 /美通社/ -- 2023年9月2日至9月6日,以"服务实体守初心 创新变革向未来"为主题的中国国际服务贸易交易会金融服务专题展(以下简称"服贸会金融展")...

关键字: 移动 BSP CHINA COM

经验丰富的全球半导体领导者强化管理团队,进一步推动其上海子公司在上交所科创板上市计划 上海2023年9月4日 /美通社/ -- 专业的视觉处理方案提供商Pixelworks,Inc.(纳斯达克股票代码:PXLW)今日宣...

关键字: PIXELWORKS 半导体 移动 视觉处理

北京2023年9月1日 /美通社/ -- 近日,由中国移动通信集团浙江有限公司(以下简称"浙江移动")联合中国移动云能力中心共同举办的2023移动云城市发布会·浙江站在杭州圆满落幕,本次...

关键字: 移动 中国移动 数字经济 云计算

韩国首尔2023年8月25日 /美通社/ -- 韩亚银行(Hana Bank)旗下子公司GLN International(简称"GLN")最近推出跨境汇款服务,为所有韩国国内银行账户,提供即时、安全...

关键字: 网络 INTERNATIONAL AN 移动
关闭
关闭