听书笔记:数据结构与算法之美(1)

阅读“1分钟內”。

Hi! :hand:

从今天开始学习极客时间王争老师的数据结构与算法之美专栏,并记录笔记。

第一节 为什么学习数据结构和算法

  1. 找工作: 校招的时候,参加面试的同学没有通常没有实际项目经验,公司只能考察他们的基础知识是否牢固。社招就更不用说了,越是厉害的公司越是注重考察数据结构和算法这种基础类的知识。相对于短期的能力,他们更看重你的长期能力。
  2. 工作后 (1)我们学习任何知识都是为了“用”的,是为了解决实际工作问题的。 (2)业务开发,虽然平时都只是做增删改查或者使用已经封装好的API接口、类库来堆砌、翻译业务逻辑,很少用到数据结构和算法,但是不需要自己实现并不代表什么都不需要了解。 在我们使用的各种框架中,一般都揉和了很多基础数据结构和算法的设计思想。掌握数据结构和算法,不管对于了解框架源码还是理解其背后的设计思想,都是非常有用的。 如果能明白接口、类库的底层原理,就能更好的使用它们。 (3)基础架构研发工程师,写出达到开源水平的框架才是你的目标。
  3. 编程能力 性能好坏起码是其中的一个判断标准。 掌握了数据结构和算法,你看待问题的深度,解决问题的角度就会完全不一样。

第二节 如何抓住重点、系统高效上午学习数据结构与算法

  1. 什么是数据结构和算法 (1)广义上:数据结构是一组数据的存储方式,算法是作用在数据结构上的一组操作方法。 (2)狭义上:是指一些著名的数据结构和算法。 (3)数据结构是服务于算法的,算法是作用在特定的数据结构之上的。
  2. 算法时间复杂度分析

这个几乎占了数据结构和算法这门课的半壁江山,是数据结构和算法学习的精髓。

  1. 20个最常用、最基础的数据结构和算法 初学者学习算法的重点是掌握这20个最常用、最基础的数据结构和算法,不管是应付面试还是工作需要,只要集中精力逐一攻克这20个知识点就足够了。 这里面有10个数据结构:数据、链表、栈、队列、散列表、二叉树、堆、图、跳表、Trie树;10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。 学习过程中不要死记硬背,不要为了学习而学习,要学习它的来历、自身的特点、适合解决的问题以及实际应用场景。 4.学习技巧 (1)边学边练,适度刷题。

可以适度刷题,但一定不要浪费太多时间在刷题上。学习的目的还是掌握,然后应用。除非面试的是facebook、google这样的公司 (2)多问、多思考、多互动 (3)打怪升级法

我们在枯燥的学习过程中,可以给自己设定一个切实可行的目标。 (4)知识沉淀 学习知识的过程就是反复迭代、不断沉淀的过程。

Gist code


To use, see:Jektify - Doc

jektify © 2019  +

Música

Goodbye! :wink:


The word of the day!

Put a very powerful message.