第四章主要学习了串、数组,广义表的话还没有特别仔细地去看。对模式串匹配的 BF算法 和 KMP算法都过了一遍,KMP算法的话相对来说比较难理解一点,可能要花多一点时间去钻研一下。然后对于数组的话看了慕课上的视频也有了较好的理解,印象最深的是稀疏矩阵和特殊矩阵的压缩存储,用三元组的方式对一些特殊的矩阵进行筛选,在做选择题的时候顺便去了解下十字链表压缩存储的方式。
这周在做PTA的时候主要的问题是问题规模,第一题的话用了BF 算法去做发现不太行,应该采用 KMP算法去实现,第二题的话主要的问题还是时间复杂比较大,最开始我是嵌套了两层循环去做,时间复杂度为O(n²),然后发现不行,就换了另外一种,在查找那里消去1层循环,发现还是不行,那肯定是排序函数那里有问题了,然后就去百度了下 快速排序法再实操一遍,发现还是不行,可能是函数里面有两个递归函数然后数据量比较大导致程序在大规模数据的时候运行超时,然后看到有个库函数 sort可以实现排序函数,然后就试了一下结果就可以了。其实做题过程中还是收获了不少,去了解了下其他的排序方式,也锻炼了自己对于时间复杂度的分析能力。
接下来还是要好好学,学期过半了,有些知识该记的得记住该掌握的掌握,做事不要拖拉。
关于KMP的话推荐一篇博客,里面其实讲的挺详细的 https://www.cnblogs.com/dusf/p/kmp.html