所以,你如果不掌握和熟悉算法和数据结构的话,你对你的代码的好与坏是不知道的,同时对项目数据量变大以及复杂度增加时,没有预估,没有预估怎么会做到防范于未然,做好项目呢。还有经常使用的中间件,为什么他们那么高效,都是由于他们在存储结构上面经过trade-off 以后选择了适合的数据结构,才能实现这么高效的运行。
为什么看了相关书籍,也知道大概的具体实现,还是没有掌握?
1. 看了两边《大话数据结构》还是不不会实现基本的数据结构,以及使用基本的数据结构应用到自己的算法当中
2. 看书是一回事,看完以后是否真正理解了,转化成自己的知识了么?我目前的情况是并没有,只是了解,没有转化为自己的认识和理解,自己可以使用笔和纸,将过程画出来,再去实现,因为只有你了解了过程,才有可能实现,这就是我们为什么我们有时候需要写伪代码
3. 练习,画图,动手,思考,动手,反馈,动手。多动手,多练习,编程是一个实践性非常强的学科,只看书是学不会写代码的。
那到底应该怎么学习呢?
1. 了解每种数据结构的优点和缺点,以及产生背景以及我们可以用这个数据结构做什么?
2. 通过画图的方式将算法的演变过程或者数据结构的存储方式画出来,推演一番
3. 动手将画出的流程和存储方式进行实现
曾经我也是那个学这个有啥用呢?我把功能实现好了不就行了,后来发现自己错了。
原文:https://www.cnblogs.com/zhangpengfei5945/p/12855449.html