‘壹’ 如何学习数据结构与算法
1、记住数据结构,记住算法思想(是什么)记住数据结构最直观的东西;记忆该数据结构的定义、性质、特点等。很多东西的理解和创新都是以记忆为前提的。
2、进行大量相关编程练习,用编程语言去实现某一数据结构上的算法(怎么办)
很多时候,理解一个算法很容易,很容易在纸上去模拟一个算法的实现过程。但具体实现,则是另一回事。一定得先自己思考,然后再去看书中给的编程语言实现。
3、“记住”特定情景下,利用某一特定的数据结构,去解决问题 (为什么+怎么办)
每介绍一种数据结构,浙大数据结构与算法的MOOC课程都会有一个实际问题来作为“引子”,回答了“这种数据结构为什么会出现”。有的是为了实现特定的操作,有的是为了时间和空间上(大部分考虑的是时间复杂性)效率的更高(所以,没事的时候,分析一下算法的时间复杂性)。这些东西,我们也须理解记忆。每一数据结构都有其特性,去解决某一类问题,我们需要去记忆,去感悟。
4、形成一个属于自己的知识体系
如何去“记住”(记好笔记,多多复习);在学习过程中,遇到挫折,产生挫败感该如何处理(这个是必然会发生的,总有难以理解不会的地方);如何进行心态方面的调整(欲速则不达,不过也有”敏捷学习“的概念)。
‘贰’ 学数据结构和算法之前要先学什么
很显然你首先需要会一门编程语言。数据结构可以在不同的语言下实现,你可以看常用的数据结构教材,有的基于C,有的基于JAVA,所以在学习数据结构与算法之前,先学会一门语言是很有必要的事情。
因为数据结构书中很多内容用到的都是C语言伪代码,如果不懂C语言的话应该是看不懂的。多了解一下点C语言、数据类型、循环分支、结构体、指针等基本知识。一般来说,学习完c语言之后,效率会比较高点,另外数学好的话对理解算法是有好处的,动态规划啊,决策树啊之类的,具体的知识可以去小码哥李明杰了解。
因为数据结构是需要编程实现的。在内容上,数据结构很大一部分是独立的,但也有一部分与其它课程有关,比如离散数学,线性代数等,不过也没多大影响,书上都带有详细介绍。数据结构理论性很强,需要多动手写代码,理解好原理,而且会编程实现,这两方面都很重要。