方法不对,看再多书你都学不会算法
在计算机科学中,算法通常是指一个解决问题的小程序。算法是程序的基本组成部分,如果你想让你的程序能够解决一切问题,你必须懂算法,这就是为什么算法在计算机编程中如此重要的原因。
如果你是一名初学者,你就必须从基础开始,从理解算法背后的基本概念开始,然后自己一个个地实现它们,在本文中,将和大家分享几种最适合初学的算法学习方法,不要再只会死读算法书啦,这样你永远都学不好算法
1、阅读书籍
毋庸置疑,书籍是学习一切知识的最好资源,它不仅能让你详细和准确地了解算法,还能帮助你按照自己的节奏学习,拿一本关于算法的好书,试着理解算法背后的理论概念。之后再去程序中实现算法。如果你失败了,别担心,书就在那里,再看一遍算法,再试着重新理解它,然后在程序里重新实现它。
关于算法的书籍,之前也推荐过很多了,其实算法相关的书籍有很多,经典的就那几本,把它们都啃透了,技术自然更上一层楼,诸如:
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、实践!实践!实践!
实践是检验真理的唯一标准,你实践的越多,就越能理解和学到一些东西,没经过实践的方法去学习算法你是学不会了,就算失败了也没关系,坚持再试一次,没准就成功了