如何系统的学习算法


很多数据结构和算法书的通病:

凡是看不懂或者看《算法导论》很吃力的同学,我都建议先看robert sedgewick的课程,我是通过robert sedgewick的算法课才把数据结构和算法搞明白的,他的课真正诠释了什么叫由浅入深、鞭辟入里、入木三分,他能让你get到这个数据结构和算法的本质,不容易忘。

课程地址:

《算法一》https://www.coursera.org/course/algs4partI

《算法二》https://www.coursera.org/course/algs4partII

对应的书籍名叫《算法》,豆瓣地址:https://book.douban.com/subject/10432347/

我推荐大家先看课程,现在是多媒体时代了,视频课程更能展示算法的动态过程。第二个,这个课程的编程作业设置的非常好,课程针对编程作业做了大量的单元测试,能检测你的代码是否合格,然后打分。完成这些编程作业,会极大的增强你的自信心。

课程资源我分享到百度网盘了,有需要的私聊我。

另外多讲一点,robert sedgewick是高德纳的大弟子,cousera上面的计算机课,robert sedgewick的英语的语速和发音是最容易听懂的。

上来硬刚《算法导论》肯定是死路一条。先推荐一本书,《我的第一本算法书》,初中生都能看懂。还有把数学基础打好,至少见到数学符号不怵。

然后推荐两个网课。一个是王卓老师的数据结构。还有一个是屈婉玲老师的 算法设计与分析。尤其是屈教授讲的算法,国内最好的算法教程,没有之一。逻辑严密,概念清晰,值得反复听。

接着就是leetcode刷题,把算法思想转换成代码实现。

最后,可以拿起《算法导论》差缺补漏了。

推荐两本书。

第一本是算法第四版,国外经典教材,这本书用来学习算法,可以配合视频学习,建议用时半年到一年。

第二本是算法笔记,这个配合浙大PTA平台使用,其实是一个oj,可以通过刷题来练习算法,用时大约3个月到半年。

以上两个阶段学完后基本就已经有一个很扎实的算法基础了,这个时候可以做一些工程项目做一下。

学习算法不难,但是如何系统的学习算法才是重要的,需要一定的规划。

一、如何入门

算法那肯定需要一定的基础,而这个基础就是数学,如果数学较差,可以看看《程序员的数学》三册,个人认为讲的不错,幽默风趣,足以补充程序员需要掌握的数学基础;

算法的基础推荐《算法图解》,图文并茂的讲述算法的原理,对刚入门算法的同学很友好。

二、更进一步

在学习完数学基础后,且了解了算法的原理,这时可以看看《数据结构与算法分析》系列图书,可以根据所学的语言选择,从而深入算法,加深对算法的认知,必须要多敲代码哦,并且理解其中设计原理。

三、加深印象

到这一步,算法的掌握已经七七八八了,但这还不够,需要可以更进一步做题。

推荐在Leetcode上刷题。从简单到困难,一定要量力而行,每天做个3至7道题即可,慢慢积累做题经验,可以更快的掌握算法;

算法个人认为分为以下三步学习,切记不要一上来就啃《算法导论》,基础不好的人会读的想放弃。

一、基础

学习算法需有一定的数学基础,如果数学较差,可以看看《程序员的数学》三册,补充一些数学的基础;算法的基础推荐《算法图解》,描述风趣,对刚学算法的同学很友好。

二、进阶

在补充了一定的数学基础后,且了解了一定的算法,此时则可以购入《数据结构与算法分析》系列图书,可根据自己学习的语言选择。不断深入算法,加深对算法的认知,同时也要多敲代码,并且理解其中设计原理。

三、实战

在深入更多的算法知识后,就可以更进一步做题,推荐在Leetcode上刷题,从简单到困难,量力而行,每天做个3-6道题即可,日积月累,更快的掌握算法;

最后在自己的项目中,可以尝试写入学习的算法,从而让算法融入你的项目。

☆ END ☆

↓扫描二维码添加小编↓

链接:http://www.zhihu.com/question/20588261 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 很多数据结构和算法书的通病: 凡是看不懂或者看《算法导论》很吃力的同学,我都建议先看robert sedgewick的课程,我是通过robert sedgewick的算法课才把数据结构和算法搞明白的,他的课真正诠释了什么叫由浅入深、鞭辟入里、入木三分,他能让你get到这个数据结构和算法的本质,不容易忘。 课程地址: 《算法一》https://www.coursera.org/course/algs4partI 《算法二》https://www.coursera.org/course/algs4partII 对应的书籍名叫《算法》,豆瓣地址:https://book.douban.com/subject/10432347/ 我推荐大家先看课程,现在是多媒体时代了,视频课程更能展示算法的动态过程。第二个,这个课程的编程作业设置的非常好,课程针对编程作业做了大量的单元测试,能检测你的代码是否合格,然后打分。完成这些编程作业,会极大的增强你的自信心。 课程资源我分享到百度网盘了,有需要的私聊我。 另外多讲一点,robert sedgewick是高德纳的大弟子,cousera上面的计算机课,robert sedgewick的英语的语速和发音是最容易听懂的。 上来硬刚《算法导论》肯定是死路一条。先推荐一本书,《我的第一本算法书》,初中生都能看懂。还有把数学基础打好,至少见到数学符号不怵。 然后推荐两个网课。一个是王卓老师的数据结构。还有一个是屈婉玲老师的 算法设计与分析。尤其是屈教授讲的算法,国内最好的算法教程,没有之一。逻辑严密,概念清晰,值得反复听。 接着就是leetcode刷题,把算法思想转换成代码实现。 最后,可以拿起《算法导论》差缺补漏了。 推荐两本书。 第一本是算法第四版,国外经典教材,这本书用来学习算法,可以配合视频学习,建议用时半年到一年。 第二本是算法笔记,这个配合浙大PTA平台使用,其实是一个oj,可以通过刷题来练习算法,用时大约3个月到半年。 以上两个阶段学完后基本就已经有一个很扎实的算法基础了,这个时候可以做一些工程项目做一下。 学习算法不难,但是如何系统的学习算法才是重要的,需要一定的规划。 一、如何入门 算法那肯定需要一定的基础,而这个基础就是数学,如果数学较差,可以看看《程序员的数学》三册,个人认为讲的不错,幽默风趣,足以补充程序员需要掌握的数学基础; 算法的基础推荐《算法图解》,图文并茂的讲述算法的原理,对刚入门算法的同学很友好。 二、更进一步 在学习完数学基础后,且了解了算法的原理,这时可以看看《数据结构与算法分析》系列图书,可以根据所学的语言选择,从而深入算法,加深对算法的认知,必须要多敲代码哦,并且理解其中设计原理。 三、加深印象 到这一步,算法的掌握已经七七八八了,但这还不够,需要可以更进一步做题。 推荐在Leetcode上刷题。从简单到困难,一定要量力而行,每天做个3至7道题即可,慢慢积累做题经验,可以更快的掌握算法; 算法个人认为分为以下三步学习,切记不要一上来就啃《算法导论》,基础不好的人会读的想放弃。 一、基础 学习算法需有一定的数学基础,如果数学较差,可以看看《程序员的数学》三册,补充一些数学的基础;算法的基础推荐《算法图解》,描述风趣,对刚学算法的同学很友好。 二、进阶 在补充了一定的数学基础后,且了解了一定的算法,此时则可以购入《数据结构与算法分析》系列图书,可根据自己学习的语言选择。不断深入算法,加深对算法的认知,同时也要多敲代码,并且理解其中设计原理。 三、实战 在深入更多的算法知识后,就可以更进一步做题,推荐在Leetcode上刷题,从简单到困难,量力而行,每天做个3-6道题即可,日积月累,更快的掌握算法; 最后在自己的项目中,可以尝试写入学习的算法,从而让算法融入你的项目。 ☆ END ☆ ↓扫描二维码添加小编↓
 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/290287.html

(0)
上一篇 2022年10月1日
下一篇 2022年10月1日

相关推荐

发表回复

登录后才能评论