一、心得体会:
1. 学习了第一章之后,我对数据结构、算法有了初步的了解,并且知道了接下来大概的学习方向与方法。
2.这种通过 自己看书+SPOC视频学习+分配讨论&点评任务 的网上教学方式觉得挺不错的(虽然还是更想回学校的课堂学习模式)。看书初步学习了解,看视频老师梳理重点加深理解,然后讨论环节可以让我们通过一个点去深挖里面的知识同时又增加了师生的互动,你还可以看到不同的同学的思考的角度。如算法这一节的Print N讨论,看完全部发布+讨论后,我觉得梓盈真的做的很好,原本我觉得除了二分法应该可以用代码让程序自己找出最大值,但是不知道怎么实现,看完梓盈的实现恍然大悟,而且对递归内部如何进行的步骤印象更深。
3. 本章的知识点基本都是概念性的,对这些基本概念的理解会对为接下来进一步学习数据结构有比较大的帮助。
学习本章我们最好能够用自己的理解记住什么是数据结构、数据结构包含逻辑结构和存储结构两个层次是什么及他们有什么结构、ADT怎么定义、算法的复杂度怎么计算等。
1) 数据结构:数据对象在计算机内存中的组织方式。
2) 数据结构包含的两个层面
——逻辑结构:从数据的逻辑关系来描述数据之间的关系(线性结构&非线性结构)
——存储结构:从数据的存储方式来描述数据之间的关系(顺序结构&链式结构)
3)ADT:一般指由用户定义的、表示应用问题的数学模型以及定义在这个模型上的一组操作的总称。(用于描述逻辑结构,不依赖于具体实现)
——ADT的定义格式:抽象数据类型名、数据对象、数据关系、基本操作(初始条件&操作结果)
3) 算法复杂度(空间&时间):关键词—数量级、问题规模
二、本学期目标:(尽力)
1.学习并掌握对不同逻辑结构进行分析的方法
2.学会如何利用链表跟数组等进行具体操作实现,尤其是链表。
三、目前存在困难:
1. 对比较多的基本概念跟术语容易混淆
2. 对于递归函数,我认为它的空间复杂度是S(n)=O(n), 看景亦同学的图片后还是不能理解“空间复杂度由N的倍数来决定”这句话不是意味着S(n)=O(n^2)吗?
四、下一阶段的努力目标:按部就班学好线性表,边学边实践(好好打代码,把链表掌握起来)。