第 40 天: 小结
通过对于图的学习,让我感觉到了与之前的很多不同之处,图与矩阵相关联,各种方法更多,用到的数组更多,难度也要大很多。
1.对于矩阵乘法的三重循环,对于我来说算是比较新的东西,开始看到的时候还是很茫然,仔细分析,拆开分解乘法的过程,也就慢慢理解了,所以对于多重循环,要熟悉每层的意义最为重要,还有就是不要怕。
2.对于Exception 的抛出与捕获机制,也是在一开始的时候不太理解,不会用,但在图里经常遇到,看得多了,自然理解就上去了。
3.在图的广度优先算法里,学习到了用数组来表示已被访问过的节点,再加上continue的用法,这种方式用途很广泛,在之后的 Dijkstra 算法与 Prim 算法中都有用到。
4.在图的广度和深度优先算法里,我也更加深刻的理解了队列和栈的作用,借以队列和栈的特性完成遍历。
5.对于图的着色问题又关乎到回溯的方法,很神奇的方法,比一般的递归更为难,但是也有他固定的框架,对于理解的要求更高,我还要再多看看。
6.邻接表和十字链表比较相似,我初做的时候对邻接表做起来相对容易,但是十字链表我比较吃力,主要是理解,结合代码和他所要完成的操作,理论知识也要充足才更能理解代码。
7.代码一定要反复,人的记忆是有限的,总不可能都记住,感觉还是很容易忘的,太容易了..
8.对于经典的算法,要理解它的核心奥义,包括数组的设置,循环的嵌套,细节太多了!
9.基础知识也是特别重要的,一些方法的用法,不会的一定的积极去查,不要想当然。
10.代码学习有时很有乐趣,但是没有理解的时候很磨人,贵在坚持,不会的先放着,我慢慢去看去问,希望能一直保持学习的初心。