方法不对,看再多书你都学不会算法!

程序员书库(ID:OpenSourceTop)编译

链接:https://www.onlinebooksreview.com/articles/10-best-and-efficient-ways-to-learn-algorithms-for-beginner

在计算机科学中,算法通常是指一个解决问题的小程序。算法是程序的基本组成部分,如果你想让你的程序能够解决一切问题,你必须懂算法,这就是为什么算法在计算机编程中如此重要的原因。


如果你是一名初学者,你就必须从基础开始,从理解算法背后的基本概念开始,然后自己一个个地实现它们,在本文中,将和大家分享几种最适合初学的算法学习方法,不要再只会死读算法书啦,这样你永远都学不好算法


1、阅读书籍


毋庸置疑,书籍是学习一切知识的最好资源,它不仅能让你详细和准确地了解算法,还能帮助你按照自己的节奏学习,拿一本关于算法的好书,试着理解算法背后的理论概念。之后再去程序中实现算法。如果你失败了,别担心,书就在那里,再看一遍算法,再试着重新理解它,然后在程序里重新实现它。


关于算法的书籍,之前也推荐过很多了,可点击查阅:


《一本书告诉你算法也可以这么学》


《世界读书日,你的书架上还缺一本算法好书》


《书来了| 为什么大厂面试都爱问算法和数据结构》


《这本书告诉你算法不一样的一面》


《无论你是什么技能方向,这些算法书都值得你一读》

其实算法相关的书籍有很多,经典的就那几本,把它们都啃透了,技术自然更上一层楼,诸如:

《算法》豆瓣评分 9.3

《算法导论(原书第2版)》豆瓣评分 9.3

《算法设计与分析基础(第3版)》 豆瓣评分 8.7

《数据结构与算法分析 : C语言描述(第2版)》 豆瓣评分 8.9

《数据结构与算法分析 : Java语言描述(第2版)》 豆瓣评分 8.5

《算法图解》 豆瓣评分 8.3

《算法引论》豆瓣评分 8.8

《算法设计指南(第2版)》 豆瓣评分 7.6


2、在线课程


网上有很多很好的课程,比如你可以学习Coursera提供的算法课程。你也可以上Udemy的课程。他们提供了许多来自著名导师的算法课程


此外麻省理工学院(MIT)、哈佛大学(Harvard)和斯坦福大学(Stanford University)的课程也可以看看,他们的许多课程都是提供自学的。


3、视频教程


视频教程是理解和实现特定算法的很好的资源。你可以在一些视频网站上(如Youtube)搜索视频教程,几乎每种算法都有大量的教程。你可以先看一段视频来理解这个算法,然后再实现它。


4、解决问题


用算法解决问题是理解和学习算法的最好方法。如果你用算法来解决实际问题,你会对算法有一个深刻的理解,当你用不同的算法解决不同问题时,你就可以很好的掌握它们,你可以在网上找到许多算法问题。首先,浏览一遍问题描述,并尝试找出解决问题所需的算法。尝试使用不同的算法来解决相同的问题。例如,你可以同时使用BFS和DFS遍历一个图。


你还可以去UVA、A2oJ、SPOJ和Timus这样的在线测评网站刷题


5、编程竞赛


深入了解算法的另一个好方法是参加各种在线竞赛。它要求你在有限的时间内理解问题并实现算法,这意味着你必须在短时间内设计出一个算法解决方案,这将极大地帮助您在实际问题中使用算法。


codeforce、Hackerrank和Topcoder它们是最流行的竞赛编程平台,你可以在上面参加各种竞赛。


6、可视化算法


如果你是那种喜欢用可视化学习的人,那么你可以通过可视化来学习算法。有许多在线算法可视化工具可以帮助你从基础上理解算法。


比如你可以通过Algorithm-Visualizer或VisuAlgo这样的可视化工具。


7、博客站点


可以在internet上阅读关于各种算法的博客文章。有很多关于算法的个人博客,多阅读你可能会发现它们也很有用。


8、在线论坛上提问


如果你在实现算法方面遇到了任何问题,你应该在各种在线论坛上具体询问这个问题,通常会有很多大神愿意帮助你解决这个问题。这样的在线论坛诸如topcode -forum、Quora等。


9、制定学习计划


熟能生巧,要掌握算法的艺术,你必须制定一个学习计划,例如,你可以在一天或一周内解决一个或几个算法。简而言之,无论你做什么,你都必须要有计划,尽量有规律。


10、实践!实践!实践!


实践是检验真理的唯一标准,你实践的越多,就越能理解和学到一些东西,没经过实践的方法去学习算法你是学不会了,就算失败了也没关系,坚持再试一次,没准就成功了


以上就是全部关于快速掌握算法的技巧,除了以上这10种方法,你平常都是怎么学习算法的呢,留言和大家分享。

推荐↓↓↓
算法与数据结构
上一篇:看了这篇文章,我发现排序算法好简单 下一篇:2019年ACM程序设计大赛结果出炉,北大清华无缘前十,莫斯科大学第一