《C++ primer》必看,现在到第五版了把。
《Accelerated C++》看2本基础书还是很有必要的。
c++晋级:
《深入探索c++对象模型》讲的是编译器如果构造c++对象,必看,好书不解释
《Effective C++》
《More Effective C++》弊铅
《c++必知必会》
以上三本教你如何更好磨毕,更高效的编写c++代码。
程序库
《泛型编程与STL》必看,泛型编程很重要啊
《STL源码剖析》这书比较难,没有扎实的基础不建议看。
最经典书籍当属《计算机程序设计艺术》,但是我不推荐,如果你非得看,而且看完了,记得给比尔盖茨发简历。
我只推荐两本《算法导论》和《算租游好法艺术与信息学竞赛》,尤其是《算法导论》大师之作,里面的代码都是权威,非常值得学习
1、时间复杂度
2、空间复悄局杂度
一般最先接触的就是时间复杂度和空间复杂度的学习了,这两个概念以及如何计算,是必须学的,也是必须最先学的,主要有最大复杂度、平均启磨让复杂度等,直接通过博客搜索学习即可。
不用说,链表、列表必须,不过重点是链表。
特别是优先队列,再刷题的时候,还是经常用到的,队列与栈,是最基本的数据结构,必学。可以通过博客来学习。相关文章:
树状数组其实我也没学过,,,,
对于十大算法的学习,假如你不大懂的话,那么我还是挺推荐你去看书的,因为看了书,你可能不仅仅知道这个算法怎么写,还能知道他是怎么来的。推荐书籍是《算法第四版》,这本书讲的很详细,而且配了很多图演示,还是挺好懂的。
图还是比较难的,不过我觉得图涉及到的挺多算法都是挺实用的,例如最短路径的计算等
这方便的只是都是一些算法相关的,我觉得如果可以,都学一下。像贪心算法的思想,就必须学的了。建议通过刷题来学习,leetcode 直接专题刷。
我觉得动态规划是最难的一个算法思想了,记得当初第一次接触动态规划的时候,是看01背包问题的,看了好久都不大懂,懵懵懂懂,后面懂了基本思想,可是做题下不了手,但是看的懂答案。一气之下,再leetcdoe专题连续刷了几十道,才掌握了动态规划的套路,也有了自己的一套模板。不过说实话,动态规划,是考的真他妈多,学习算法、刷题,一定游搭要掌握。这里建议先了解动态规划是什么,之后 leetcode 专题刷,反正就一般上面这几种题型。后面有时间,我也写一下我学到的套路,有点类似于我之前写的递归那样,算是一种经验。也就是我做题时的模板,不过感觉得写七八个小时,,,,,有时间就写。
对于上面设计到的算法,我都提供了感觉还不错的文章,建议大家收藏,然后可以利用零碎的时间进行阅读,有些人可能会觉得上面的算法太多,说实话,我觉得不多,特别是对于在校生的,上面涉及到的算法可以不用很懂,但至少得了解。至于书籍的话,如果你连基本数据结构都还不懂的,建议看《数据结构与算法》相关书籍,例如《大话数据结构》、《数据结构与算法分析》。如果你有一定的基础,例如知道链表,栈,队列,那么可以看《算法第四版》,不过这本书是用 Java 实现的,不过我觉得你只要学过 C,那么可以看的懂。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)