第4章学习小结

  1. 你对本章内容的小结 1)三种数据结构:串,数组,广义表2)串是内容受限的线性表,它限定表中的元素为字符。串有两种基本存储结构:顺序存储和链式存储。串的常用算法是模式匹配算法;3)多维数组可以看成是线性表的推广,其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一种数据类型。数组一般采用顺序存储结构,因此在存储多维数组时,要先将其转换为一维结构,可以按“行”,也可以按“列”转换4)广义表是线性表的另一种形式,通常采用链式存储结构;5)模式匹配:举个例子,给定两个字符串变量S和P,其中S成为目标串,其中包含n个字符,P称为模式串,包含m个字符,其中m<=n。从S的给定位置(通常是S的第一个位置)开始搜索模式P。如果找到,则返回模式P在目标串中的位置(即:P的第一个字符在S中的下标)。如果在目标串S中没有找到模式串P,则返回-1;6)模式匹配算法有两种,一种是简单暴力类型的,BF算法,一直是快速模式的,KMP算法;7)BF算法是依次进行比较,但是在这过程中会出现重复的字符比较,导致效率低下,其时间复杂度为O(mxn);8)KMP算法重点是在于知道当一个字符串与主串不匹配时,知道指针应该要移动到哪,减少重复比较的过程,其时间复杂度为O(m+n)
  2. 完成作业或实践时的心得体会:在做PTA作业的题目时,由于感觉BF算法更容易,我一开始还是选择了BF算法,但总是运行超时,我就知道这个时候应该是用KMP算法才可以了,但是对这个算法理解起来还是有一定的难度。
  3. 值得向大家分享的资料?每一项推荐都请说明推荐理由及列出相关链接(或书目名称,具体页码)博客上有许多优秀的文章,我们现在所拥有的疑惑,博客园上的人大部分也有,因此在博客园上能找到自己问题的答案
  4. 上一阶段的目标完成情况,接下来的目标:多打代码,自己代码还是打得太少了,这不像一个程序猿应该有的样子。然后就是知识点要理解好,理解不好,心浮气躁地学习,真的什么都不会,题也打不会。

相关推荐