1 / 9
文档名称:

三种模式匹配算法的比较和分析.doc

格式:doc   大小:105KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

三种模式匹配算法的比较和分析.doc

上传人:zbfc1172 2019/9/4 文件大小:105 KB

下载得到文件列表

三种模式匹配算法的比较和分析.doc

相关文档

文档介绍

文档介绍:作业要求:分别用KMP、MonteCarlo、LasVegs算法编制三个程序,随机生成不小于5000对长度不等的01串(三个程序使用相同的串),然后统计算法的执行时间和MonteCarlo算法的出错比率,并根据运行结果对三种算法进行深入的比较。算法思路KMP算法的主要特点是指向主串的指针不需要回溯,只向右移动,即模式串在与主串失配时,并不回溯主串的指针与模式串重新匹配,而是根据已经得到的匹配信息将模式串尽可能远的向右滑动一段。滑动距离的大小取决于模式串的失效函数next,next[k](0<=k<=m-1)的值表示当模式串在下标为k的字符处与主串失配时应该向右移动到下标为next[k]的字符处再与主串重新匹配。算法首先要求模式串的失效函数next,然后再根据next的值进行模式匹配,在最坏情况下的时间复杂度为O(m*n),m为模式串的长度,n为主串的长度,当如果模式串中有较多相同的字符时,时间复杂度一般可达到O(m+n)。MonteCarlo随机算法主要是通过比较模式串和主串中与模式串等长的串的“指纹”来匹配的,若两者指纹相等,则可以认为在概率意义下两者是相等的,算法中要求用到一个随机产生的素数作模运算,该素数的选取直接影响了算法的准确率,算法的时间复杂度为O(m+n)。但有一定的出错率,即选取主串中比较串的指纹与模式串相等时但比较串与模式串并不相等,理论上这种情况出现的概率为1/n,只与主串的长度有关,与模式串的长度无关,但实际上只要选取素数合适出错率比1/n要小的多。LasVegas算法是对MonteCarlo算法的改进,当模式串的指纹与主串中的比较串相等时,此时并不直接返回匹配的位置,而是判断两个字符串是否真的相等,相等则返回,否则继续匹配。所以,该算法总能得到正确的位置,但算法的执行时间稍微比MonteCarlo算法要长一点(判断字符串是否相等的耗费),时间复杂度的期望值不超过O(m+n)。要完成上述三个模式匹配算法的比较,需要一个0/1串的随机发生器和一个素数发生器。程序中头文件””包含的RandomString类是用来产生MAXSIZE对的主串和模式串的,0/1串的长度和内容都是随机的,为了便于比较,规定主串的长度一定大于模式串的长度。””包含的Random类封装了产生随机数的函数。素数发生器首先产生MAXSIZE个随机数保存在prime数组中,供随机算法使用。本程序中随机生成了10000对0/1串作为测试数据,即MAXSIZE=10000。””定义了所用的常量。算法分析和比较运行PatternMatching可以发现:三个算法运行的时间处于同一数量级的,其中在大多数情况下MonteCarlo的算法都要快于KMP和LasVegas算法,从理论上分析MonteCarlo算法的平均时间复杂度优于KMP算法,一般情况MonteCarlo时间复杂度为O(m+n),而KMP最好情况O(m+n),最坏为O(n*m)。LasVegs要比MonteCarlo稍微慢一点点,这是预料之中的,因为判断字符串相等耗费了额外的时间。KMP和LasVegs算法的平均时间复杂度大致相等。随机选取的素数大小直接影响了MonteCarlo算法的出错率。在模式串不是很长时,当素数大于某个数时我们可以发现出错率可以降到0。设模式串

最近更新

肾性高血压并发症的护理ppt 25页

神经症患者的护理ppt 19页

神经内科的一般护理常规ppt 23页

社区护理学ppt课件第二章 24页

2020版:肺炎球菌性疾病免疫预防专家共识(全文.. 82页

三腔起搏器术后护理查房ppt 22页

2021高职 智能财税 赛题09(赛项赛题) 70页

2022下半年事业单位联考C类《综合应用能力》真.. 6页

2022年初级中药士考试全科综合试题及答案卷32.. 46页

2022年新高考-浙江语文高考真题试卷(含答案) 13页

2022年辽宁省沈阳市中考历史真题试卷(含答案).. 16页

2023届广东省高考物理冲刺卷2 7页

2023年执业药师之西药学专业一题库附答案(基础.. 24页

2023年电大建筑工程项目管理形成性考核作业答.. 8页

2023版T电梯修理特种作业证模拟考试必考点精选.. 23页

3895国开电大专科《管理英语1》第三大题阅读理.. 11页

C语言专升本2阅读程序题(3月10日终版) 17页

S7-400H冗余系统硬件组态操作流程 11页

妊娠期合并甲减护理查房ppt 25页

《移动开发技术》实验报告 6页

七台河市人民政府办公室关于印发《七台河市已.. 9页

上海市金山区人民政府办公室关于印发2022年金.. 9页

中小学智慧校园解决方案 15页

乌兰察布市人民政府关于印发《乌兰察布市进一.. 8页

五市十校教研教改共同体、三湘名校教育联盟、.. 20页

人大金仓 KingbaseES 数据库技术白皮书 20页

人教部编版七年级语文下册现代文阅读18篇 28页

会计信息系统(第2版)》答案 6页

保险公司董事、监事和高级管理人员任职资格管.. 21页

全国安全生产月的演讲稿范文8篇 12页