第四章学习小结

一、本章内容小结,主要学习串、数组、广义表的存储方式以及其应用

1、串是特殊的线性表,其特殊性在于没一个元素是字符,具有顺序存储结构和链式存储结构两种,一般采用顺序存储结构。顺序存储结构中,为了动态分配数组空间,用到了char*,使用时记得提前申请空间。串的模式匹配主要有两种方法:BF算法和KMP算法。BF算法较容易理解,但其时间复杂度高,达到了O(m*n);KMP算法提高了效率,时间复杂度降为O(m),其核心是next函数的实现(我看慕课看了很多次,也查了很多资料,但还是有点迷糊,所以还需要花时间去琢磨)

2、数组主要掌握矩阵的压缩存储,以及按列/行存储时能够计算其地址,一般也采用顺序存储结构。稀疏矩阵压缩存储时主要有两种方法:三元组表和十字链表,主要掌握三元组表

3、广义表是一个递归的表,主要的运算有取表头和取表尾两种,这里的表尾是指出表头以外的元素

二、完成作业或时间时的心得体会

1、这道题比较纠结A和C选项,最后选择了C是记得上学期老师说过的某些内容,但仍然不太确定

 

 当然利用KMP算法那道选择题也还在纠结,只能靠自己课后再多研究研究

2、打代码时都出现了运行超时的情况。实践求交集那里我用到了两种方法,一种是先排序再求交集,另一种是先求交集再排序,经过测试前者效率更高;排序时用到了老师讲的方法,但还是超时,最后选择了直接调用sort函数,才通过了测试点。一道题的解决方法有很多,想要找到最优的得自己去试,或者提前计算出时间复杂度

三、就想分享一下sort函数,因为同样是排序,但是它的效率比我们之前学过的快很多,除了C++reference,我还找了一篇博文,同学们有兴趣可以看看https://www.cnblogs.com/fengcc/p/5256337.html

 

四、上一阶段的目标基本完成,较能理解递归的含义及用法。接下来的目标是继续弄得KMP算法,直到能独立实现复现代码,当然还要及时预习下一章,认真完成老师布置的作用,学会使用STL以及弄懂其源代码

 

posted @ 2020-05-05 20:55  徐晴芳  阅读(138)  评论(0编辑  收藏  举报