分享到:

对字符串模式匹配KMP算法的探讨

字符串是一种线性表 ,它在计算机应用系统中如文本编辑、情报检索、自然语言翻译有着广泛的应用。在这些应用中常常需要在一正文字符串中检测是否有一指定的字符串。设s和t是给定的两个字符串 ,在字符串s中寻找等于t的子串的过程称为模式匹配 ,其中字符串s称为主串 ,字符串t称为模式。如果在字符串s中找到等于t的子串 ,则称匹配成功 ,否则匹配失败。比较著名的模式匹配算法有BF算法、KMP算法、RK算法和BM算法 ,本文主要对前面两个算法进行探讨。一、模式匹配的BF算法模式匹配的最简单、直观的算法是BF(Brute-Force)算法。该算法的基本思想是从主串s的第start个字符起和模式的第一个字符比较 ,如相等 ,则继续逐个比较后续字符 ,否则从主串的第start+ 1个字符起再重新和模式t的字符比较。依此类推 ,直到模式t中的每个字符依此和主串s中的一个连续的字符序列相等 ,则称匹配成功 ,否则称匹配不成功。BF算法如下 :算法 1:...  (本文共3页) 阅读全文>>

《科技信息(科学教研)》2007年13期
科技信息(科学教研)

基于模式匹配KMP算法的探讨

字符串是一种线性表,它在计算机应用系统中如文本编辑、情报检索、自然语言翻译有着广泛的应用。在这些应用中常常需要在一正文字符串中检测是否有一指定的字符串。设s和t是给定的两个字符串,在字符串s中寻找等于t的子串的过程称为模式匹配,其中字符串s称为主串,字符串t称为模式。如果在字符串s中找到等于t的子串,则称匹配成功,否则匹配失败。比较著名的模式匹配算法有BF算法、KMP算法、RK算法和BM算法,本文主要对前面两个算法进行探讨。1.模式匹配的BF算法模式匹配的最简单、直观的算法是BF(Brute-Force)算法。该算法的基本思想是从主串s的第1个字符起和模式的第一个字符比较,如相等,则继续逐个比较后续字符,否则从主串的第2个字符起再重新和模式t的字符比较。依此类推,直到模式t中的每个字符依此和主串s中的一个连续的字符序列相等,则称匹配成功,否则称匹配不成功。下面分析它的时间复杂度,设串s长度为n,串t长度为m。匹配成功的情况下,考...  (本文共2页) 阅读全文>>

《重庆工商大学学报(自然科学版)》2014年08期
重庆工商大学学报(自然科学版)

字符串匹配算法探讨

字符串匹配是模式匹配中最简单的一个问题,但在文本处理领域中字符匹配是一个非常重要的主题。它可用于数据处理、数据压缩、文本编辑、信息检索等多种应用中,大多数操作系统中软件实现的字符匹配算法是基本组件之一。字符串匹配技术通常也和其他字符问题有一定关联。在实际应用中字符串匹配技术不仅适用于计算机科学,在语义学、分子生物学等领域也具有相当重要的应用,在以模式匹配为特征的网络安全应用中也发挥了举足轻重的作用。1字符串匹配算法研究现状字符串匹配分为精确字符串匹配与非精确字符串匹配,是计算机科学的重要组成部分,隐含众多信息科学理论、算法思想以及算法技巧,其应用渗透了信息技术的各个领域。随着网络信息大众化的快速发展,用户对信息检索提出了更高要求,功能上要求提高查全率、查准率以及精确定位,操作上要求简单、灵活、快捷。作为信息检索的基础,字符串匹配越来越重要,成为信息检索的瓶颈技术,直接影响到信息检索的检索方式、检索功能、检索效果、用户界面等。非精...  (本文共4页) 阅读全文>>

《科技资讯》2009年29期
科技资讯

对字符串模式匹配KMP算法的教学方法设计

字符串模式匹配是各种串处理系统中重要的操作之一。KMP算法是模式匹配算法中性能较优的算法,但也是较难懂和难讲的算法;在实际的教学中应该在分析完算法思想的基础上从实际举例入手,首先理解并熟悉手工算法,进而掌握算法思想,最终完整掌握算法本身。1KMP算法思想分析首先假设主串为‘s1s2…sn’,模式串为‘p1p2…pm’,我们从主串的第1个字符起开始匹配,当主串中第i个字符与模式串中第j个字符“失配”(即比较不等)时,主串中第i个字符(i指针不回溯)应与模式串中哪个字符再比较?假设此时应与模式串中第k(kk满足下列关系式(1)‘p1p2…pk-1’=‘si-k+1si-k+2…si-1’(1)而已经得到的“部分匹配”结果是‘pj-k+1pj-k+2…pj-1’=‘si-k+1si-k+2…si-1’(2)由式(1)和式(2)得知‘:p1p2…pk-1’=‘pj-k+1p j-k+2…p j-1’(3)反之,若模式串中存在满足式(3)...  (本文共1页) 阅读全文>>

《重庆三峡学院学报》2005年03期
重庆三峡学院学报

基于KMP算法的有限自动机的确定化

有限自动机是具有离散输入和输出系统的一种数学模型,在计算机科学中,有许多有限状态系统的例子,可以用自动机加以解决。如开关线路设置、文稿编辑、图书资料查找、结构型数据翻译等等。1.有限自动机理论有限自动机和现实的计算机一样都有一个固定的、能力有限的“中心处理装置”,它接收输入,没有输出,只给出是否接收这个输入的符号的结论。1.1确定的有限自动机(DFA)定义1一个确定的有限自动机M是一个五元式[1]M=(S,∑,f,s0,Z)其中:S是一个有限集,它的每个元素称为一个状态;∑是一个有限字母表,它的每个元素称为一个输入符号;f是一个从S×∑至S的(单值)部分映射。f(s,a)=s’意味着:当现行状态为s,输入字符为a时,将转移到下一个状态s’。s0∈S,是唯一的一个初态;Z□S,是一个终态集(可空)。一个确定型的有限自动机由一个输入带(输入串放在上面)、一个有穷控制器(含有有穷个不同的内部状态)和一个可单向移动的读头组成。DFA的运...  (本文共3页) 阅读全文>>

《河南大学学报(自然科学版)》2002年03期
河南大学学报(自然科学版)

基于KMP算法的确定型有穷自动机的设计

1 确定型有穷自动机的相关理论同现实中的计算机相比 ,有穷自动机是一个功能非常有限的语言接受设备 .它的输入是一个字符串 ,并且被传送到输入带上 ;它没有输出 ,只给出是否接受这个输入的信号 .它有一个固定的、能力有限的“中心处理装置” ,没有任何存储能力 ,这是有穷自动机成为受限制的现实计算机模型的关键因素 .尽管有穷自动机能力有限 ,没有任何存储能力 ,对它的理论的研究依然不可忽略 .利用有穷自动机可以做进一步的研究和设计 ,建立更加完善的计算机和算法模型 .例如 ,可以在有穷自动机的基础上增加辅助存储 ,研究对增加计算能力可以起到什么作用[1,2 ] .定义 确定型有穷自动机 (记为DFA)是一个五元组M=(K ,Σ ,δ ,s,F) .其中 ,K是有穷状态的集合 ,Σ是字母表 ,s∈K是初始状态 ,F K是终结状态的集合 ,δ是从K×Σ到K的函数 ,叫转移函数 .有穷自动机M选取下一个状态的规则被编码成转移函数 .如果...  (本文共3页) 阅读全文>>

《计算机光盘软件与应用》2014年08期
计算机光盘软件与应用

有关KMP模式匹配算法的探索

随着计算机技术的不断发展,需要处理的数据内容不断呈现出大量化的特点。近年来,在计算机研究领域内模式匹配问题受到了极大的关注。在串处理系统中,子串在主串中的定位操作是一种重要的过程中,称之为串的模式匹配。随着计算机网络搜索引擎技术的发展、病毒技术的进步以及数据压缩方面的不断发展,模式匹配算法在计算机应用系统中得到了广泛的应用。目前主要的匹配算法有BF算法、KMP算法与一些改进的算法,从方式上,可以分为精确匹配、模糊匹配、并行匹配等。本文重点对KMP算法进行分析,另外对于改进的KMP算法进行研究与展望。1简单的模式匹配算法现代计算机技术不断发展,人们的工作、生活与互联网有着密切的联系,同时网络内容也不断丰富,每一个终端几乎都有可能会上传与下载数据,造成网络上的类似相信也非常多,如何能够从大量的信息中进行查找同样的信息,则需要经过一定的算法。[1]这种典型的应用系统将会使用到匹配算法。简单的模式匹配算法主要是一种查找过程,给出一个特定...  (本文共2页) 阅读全文>>