您申请加入课程:数据结构与算法(C++描述)
需要验证您的身份,请输入课程密码:
您的学号:
班级选择:
课程密码:
  • 创建者

    Creator

    潘家辉
  • 活跃度

    Activeness

  • 访问量

    Visits

    213437

教学公告

18软工 第6周安排
[作者: 潘家辉  发布时间:2019-10-11 21:03:29  浏览次数:682次]

18软件工程《数据结构与算法》 第六周安排

讲解第4章的内容 99-113

1、字符串的定义、存储结构

2、模式匹配BFKMP (重点、难点)

3、矩阵的压缩存储

实验课会补充讲解STL中有关队列、栈的基础内容。

实验内容于1013日公布

大家可以根据自己的情况进行相应的预习

师说


模式匹配是数据结构中字符串的一种基本运算场景,给定一个子串,要求在某个字符串中找出与该子串相同的所有子串。尽管早已可以在Python下使用正则表达式或者使用其他语言的开发包可以高效而简洁地实现模式匹配,但了解相关算法背后机理亦不失其学习的意义。

1. Brute-Force算法

核心思想在于从 T 的第一个字符开始遍历每一个字符,依次匹配 P。是最简单,也最低效的匹配方法

2. Boyer-Moore算法

通过跳跃启发式算法避免大量无用的比较。每次逐字符匹配从 P 最后一个字符开始。

3. Knuth-Morris-Pratt算法

穷举算法和 Boyer-Moore 算法在完全匹配中必然进行 len(P) 次匹配,KMP 算法充分利用 P 内部的字符串重叠,做进一步优化。



https://blog.csdn.net/weixin_43269174/article/details/90485767



关于KMP算法(105-107页),如果看不明白,可以通过下面的链接从另外一种维度进行理解

http://www.tuicool.com/articles/e2Qbyyf



相关课程

扫一扫二维码,快速加入本课程!

放大二维码 查看使用方法
关闭