数据结构与算法之美(一)开篇&导读

开篇词 | 从今天起,跨过“数据结构与算法”这道坎

基础知识就像是一座大楼的地基,它决定了我们的技术高度。想要快速深入一个领域,前提条件一定是基础足够扎实。

专栏设计:

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. 知识需要沉淀,不要试图一下子掌握所有(书读百遍其义自见)


图片发自App

你可能感兴趣的:(数据结构与算法之美(一)开篇&导读)