讨论/算法和数据结构/小白来请教怎么学习算法/
小白来请教怎么学习算法

本人今年大二在读,java,c都会,数据结构会一些,高数基础不好,想深入学习算法,请教下各位大佬应该按什么顺序学习?

最好能有类似学习书单,谢谢各位大佬!!!

展开讨论

已经有语言的基础,其实刷题并不难哦。现在「力扣」这个论坛已经做得越来越好了。你可以在讨论区或者是题解区看到高手写的代码和分析,这对于以前的刷题党来说是不可想象的。

刷题和高数其实没有多大关系,不会用到极限、积分、求导,也不会让你计算方阵的行列式,也不会用到各种统计学分布。需要的一点点简单的逻辑思维能力和空间想象能力(有些算法比较抽象,需要想一下代码的执行流程和数据结构里算法的运行流程)。

其实刷题做的事情大概就是怎样更好地解决问题,用到的思想是普遍且深刻的:例如:空间换时间、减而治之(排除法、缩小问题规模)、抽屉原理。深搜和广搜其实在生活中都有对应的例子,回溯法就是在做深搜,动态规划往简单了说就是空间换时间,然后从“头”开始计算,贪心算法严重依赖问题本身的特点。你大概还需要通过刷题去体会递归是怎么回事,还蛮有意思的哦。

在这里,我只是想说刷题之前需要的基础知识并不深奥,刷题更多的时候刷的是经验,看书和看视频更多时候只能帮助我们入门,有些细节的东西只有自己去刷才有体会。

如果一开始觉得入手比较困难的话,就从简单的问题开始,按标签刷题,由容易到中等,困难题看心情刷(有些困难题可能很有意思,也可能很基础,是可以刷的,有些困难题没有必要刷,合理分配时间和精力)。试着写写评论,写写题解,给别人点点赞,写写评论,还可以整理到自己的博客和 GitHub 里。

推荐的书本是《算法导论》和《算法 4》,但是这两本书都很厚重,需要像查字典一样去看,需要的部分精读细读即可。

个人建议,仅供参考。

11
展开全部 5 讨论