彩票走势图

每日一问:初学者如何学习算法

转帖|行业资讯|编辑:郝浩|2016-10-08 10:23:59.000|阅读 745 次

概述:刚进入编程领域的初学者如何学习算法呢?本文的知乎答友会帮助你解决这样的困惑。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

我个人推荐《算法导论》,但不是一上来就看,我想强调的有如下几点:

  1. 学习算法不是件易事,应该有一个系统化的学习过程;
  2. 学习算法要有很好的数学基础,否则学到的算法只能是生搬硬套,遇到实际问题还是不会;
  3. 学习算法最好的两本书仍然是和。

不管是计算机专业,还是其它专业想自学算法,学习的路线大致是这样的:

阶段一:

基础数学课:微积分,线性代数,概率论

没有微积分极限,收敛等概念,怎么去理解算法中时间复杂度,空间复杂度的概念;不懂矩阵算法中的图算法怎么去入手,不懂概率论随机算法应该不好学,时间复杂度估计算不来。学习书籍可参考学校设的相关课程,概率论的话推荐一本书:概率论与数理统计 (豆瓣)。这三门基础课是一定要学好的。

阶段二:

计算机相关数学:离散数学,图论

离散数学里面有算法,计数,归纳等基本概念,图论里更是囊括了树,图和流的所有理论知识,这些是树,图,流等算法的基础。离散数学推荐书籍:离散数学及其应用 (豆瓣),图论推荐书籍:图论 (豆瓣)。

计算机相关:C语言,数据结构

数学毕竟只是理论,还得有实际的编程工具,推荐学一门入门的编程语言,C语言最佳(也有高校一上来就学C++或者java的,个人不推荐),还有数据结构更是重中之重,这是你能把树,图能用计算机语言表达出来的基础,我敢说,叫你实现一颗简单的二叉树,你都不一定能写出来,那你还谈学什么算法,数据结构推荐书籍:数据结构 (豆瓣),C语言和数据结构可以在学习上述数学知识之中穿插着一起学。

阶段三:

系统学习算法,啃《算法导论》吧

其实通过阶段一,阶段二的学习,已经基本掌握了算法相关的所有知识了,那还缺什么呢?系统学习算法,而《算法导论》就能很好的给我们一个学习算法的大框架,深入其中吧,你会发现上面讲的内容你是那么熟悉,但是你的收获又是那么多。在整个过程,可结合《算法设计》这本书一起学,《算法导论》看不懂内容的去《算法设计》上看,两本互补。

阶段四:

算法实践,思维扩展。

到这儿已经没有什么方法而言了,就是多练习,弥补不懂的知识,继续练习,练习题可参考网上的一些算法题集,如leetcode或者ACM题或者各大互联网公司笔试面试题。个人推荐两本书籍:编程珠玑 (豆瓣),编程之美 (豆瓣),两本书都有一定难度,但是如果前几个阶段都能做好的话,你获得的一定是趣味。

最后,还是要强调一点,也是我反复强调的,厚积才能薄发,不要浮躁,不要想着看一本书就把算法学好,算法是贯穿整个编程生涯的,毕竟这个式子不是说着玩的:程序=算法+数据结构。 希望大家能静下心来,从最基础的数学知识和数据结构学起,不要贪多,学扎实才是王道。希望大家都能把算法学好,能写出高质量的代码,与大家一同进步,共勉。

 

本答案来自-

了解更多对编程的算法有帮助的工具>>


标签:算法

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP