开篇词 | 从今天起,跨过“数据结构与算法”这道坎
基础知识就像是一座大楼的地基,它决定了我们的技术高度。想要快速深入一个领域,前提条件一定是基础足够扎实。
专栏设计:
1. 从多本书籍和多年项目经验中,选取最实用的内容讲解
2. 让学员知其然 并且知其所以然,捋清楚其设计思想,以培养举一反三的能力
3. 结合真实案例讲解,让学员学会将数据结构与算法应用到实际的编码中
4. 由浅入深分成四个递进的模块:
1. 入门篇:时间、空间复杂度的分析
2. 基础篇(26节):最基础、最常用的数据结构和算法
3. 高级篇:开拓视野,强化算法思维、逻辑思维
4. 实战篇:串讲,结合开源项目、框架或者系统设计问题,剖析其背后的数据结构与算法。
01 | 为什么要学习数据结构和算法?
总结笔记:
1. 建立时间复杂度、空间复杂度意识
2. 解决实际工作问题,写出高质量的、性能更优的代码
3. 掌握数据结构和算法,有利于阅读框架源码、理解其背后的设计思想
4. 能够设计基础架构,提升编程技能,训练逻辑思维
5. 看待问题的深度,解决问题的角度得以变得不同
02 | 如何抓住重点,系统高效地学习数据结构与算法
一、什么是数据结构?什么是算法?
从广义上讲,数据结构就是一组数据的存储结构。算法就是操作书记的一组方法。
从狭义上讲,是指某些著名的数据结构和算法,比如队列、栈、堆、二分查找、动态规划等。
数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。
二、学习的重点在什么地方?
1. 复杂度分析(数据结构与算法中最重要的概念)
2. 20个最常用、最基础的数据结构与算法:
1. 10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;
2. 10个算法:递归、排序、二分查找、搜素、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。
3. 学习数据结构和算法的过程,不要死记硬背,而要学习它的来历、自身的特点、适合解决的问题以及实际应用场景
4. 学习数据结构和算法的过程,是非常好的思维训练的过程。千万不要被动记忆,要多辩证地思考,多问为什么
三、学习技巧
1. 边学边练,适度刷题(将所学用代码实现一遍)
2. 多问、多思考、多互动(避免一知半解)
3. 打怪升级学习法(设立目标:持续输出学习笔记/心得;挑毛病、找老师的不对;当众立下Flag)
4. 知识需要沉淀,不要试图一下子掌握所有(书读百遍其义自见)

网友评论