课程:《如何抓住重点,系统高效的学习数据结构和算法》 总结
最近在学习王争老师《数据结构和算法之美》,希望通过分享,让自己加深理解,持之以恒,一定可以熟能生巧。
首先让我们了解下:数据结构是什么?算法又是什么?
广义上讲,数据结构就是一组数据的存储结构,算法就是用来操作数据的一组方法。
狭义上讲,是指一些著名的数据结构和算法。这些都是前人从实际的操作场景中抽象出来的,经过了多次的求证和检验,可以直接拿来用的。比如:队列、栈、堆、递归、排序算法等。
数据结构和算法相辅相成,分而不立。数据结构服务于算法,算法要作用在特定的数据结构之上。
想要学习数据结构和算法,首先要掌握其中最重要的一个概念:复杂度分析,它几乎占据着数据结构和算法这门课的半壁江山。是数据结构和算法学习的精髓。数据结构和算法解决的是更省、更快地存储和处理数据的问题,于是复杂度分析就呼之欲出,因为它恰好就是一个考量效率和资源消耗的方法。
-
10个最常用、最基础的数据结构:数组、链表、栈、堆、队列、二叉树、散列表、跳表、图、Trie树。
-
10个最常用、最基础的算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
专栏中提到:”学习数据结构和算法的过程,是非常好的思维训练的过程“。让读者不要被动的记忆,要多辩证的思考,多问为什么。我非常同意这种说法,“自己知道” 和 “知道并能讲出来” 是不同的,通过自己的理解和组织讲出来分享给他人,会促使自己对这个所讲内容有更深的印象,记得更牢。不断的分享,更能加深理解。
最后,祝我自己学习进步,更上一层楼。如果你也和我一样,不妨一起来试试这样的学习方法吧。坚持就是胜利。