如何系统的学习数据结构与算法
导读
我们似乎都有类似的情况,在刚开始接触数据结构与算法的时候,都觉得晦涩难懂,一度怀疑自己智商有问题。从个人角度来看,无论是学习数据结构与算法还是学习其它如计算机网络,操作系统,都需要掌握好的学习方法,抓住学习重点,今天就带领大家一起思考下如何系统高效的学习数据结构与算法。
1、是什么
从广义上讲,数据结构就是指一组数据的存储方式,算法就是操作这组数据的方法。
从狭义上来看,数据结构就是平时我们常说的一些经典的数据结构与算法,队列、栈、二叉树、链表、动态规划等。
所以,数据结构与算法是相辅相成的。数据结构是为算法服务的,算法又是作用在数据结构之上。
2、学什么
首先,我们得掌握一个重要概念:复杂度分析。只有掌握了复杂度分析方法,我们就能知道如何更省、更快地存储和处理数据问题。
其次需要掌握最基础的10 个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie 树;10 个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
在学习数据结构和算法的过程中,不要只是死记硬背,不要为了学习而学习,而是要学习它的“来历”“自身的特点”“适合解决的问题”以及“实际的应用场景”。
3、怎么学
边学边练。
自我激励,每次学习完做一篇学习笔记或者定一个适合自己的小目标。
沉下心不要浮躁,先把这些基础的数据结构和算法,还有学习方法熟练掌握后,再追求更高层次。