- 0
- 0
- 约2.9千字
- 约 21页
- 2017-08-20 发布于河南
- 举报
课程设计计算机设计程序设计
基于MATLAB《数据结构与算法》 延边大学 信息管理专业(13级) 崔基哲 KMP模式匹配算法 MATLAB编程之基础算法 * 串的模式匹配算法 一、基本概念 1、模式匹配(定位) 设有主串S和子串T(将S称为目标串,将T称为模式串),在主串S中,从位置start开始查找,如若在主串S中找到一个与子串T相等的子串,则返回T的第一个字符在主串中的位置,否则返回-1。 2、算法目的 确定主串中所含子串第一次出现的位置(定位) 3、算法种类 KMP算法 KMP模式匹配算法 它是:在一个长字符串中匹配一个短子串的无回溯算法。 定义 s: 模式串 , m: 模式串的长度 text: 要匹配的字符串, n:text的长度 设text: x1,x2,…xn , s: a1,a2,…am, 则当存在i使 xi+k=ak(k=1,2,…m)时,认为text与模式串匹配,当然text也可能与模式串有多处匹配 例如:text: abcabca, s:abc 则text与s匹配的位置有3和6 KMP算法 作为一种无回溯的算法,它是高效的,待会儿你将看到它的时间复杂度为O(m+n),空间复杂度也为O(m+n) 而且,它很容易理解,代码也很短 定义 next: 为对应模式串的数组 设字符串为 s1s2s3...sm ,其中s1,s2,s3,...
原创力文档

文档评论(0)