《数据结构与编程之美》学习笔记1:为什么,怎么学数据结构与算法。

写在前面:

数据结构与算法对于一个程序员来说是至关重要的,一个好的程序员和不好的程序员之间的差距可能就是算法与数据结构掌握。本篇博文也是在学习王争老师的《数据结构与算法之美》课程之后所做的笔记,方便之后回顾。

一、那么为什么要学习算法呢?

1.大厂面试,必考数据结构与算法。

  • 校招时,参加面试学生大多没有实际项目经验,公司考察学生基础知识是否掌握。因为这反映了一个人的长期潜力,FLAG巨头面试也是全部面算法题,而且难度也是逐年提高。

2.业务开发师是否愿意做一辈子的 CRUD(增删改查) boy

  • CRUD是指在做计算处理时的增加(Creat)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要是用在描述软件系统中DataBase或持久层的基本操作。
  • 很多时候只需要利用现成的接口,很少需要自己实现数据结构与算法。但是不需要自己实现,并不代表什么都不需要了解。
  • 业务开发过程中用到许多框架,在这些基础框架中一般都糅和了许多基础数据结构和算法的设计思想,掌握数据结构不管对于阅读框架源码,还是理解其背后的设计思想,都是非常有用的。

3.基础架构研发工程师,写出达到开源水平的框架才是你的目标

  • 不同的人做出来的框架可能会有巨大差距(性能、扩展性和 Bug 等)。高手之间的竞争在于细节,包括算法是否最优,数据存取效率是否最高,内存是否节省等。

4.掌握数据结构与算法的好处

  • 直接的好处就是可以写出性能更优的代码
  • 算法,是一种解决问题的思路与方法,可以大大的提高了编程能力
  • 算法可以有效地锻炼大脑的思维能力,长期看来是非常重要的

二、如何抓住重点,系统的学习数据结构与算法?

1.什么是数据结构,什么是算法?

  • 广义上说,数据结构就是一组数据的存储结构,算法是是操作数据的一组方法。
  • 数据结构和算法是相辅相成的,数据结构是为算法服务的,算法要作用在特定的数据结构之上。

2.学习重点

  • 首先掌握最重要的概念 复杂度分析 :复杂度分析方法是考虑效率和资源消耗的方法。数据结构和算法是如何更快、更省地存储和处理数据的问题。
  • 数据结构与算法的全面的知识点如下图所示:

《数据结构与编程之美》学习笔记1:为什么,怎么学数据结构与算法。_第1张图片

  • 数据结构与算法有很多,分清学习的重点。下面给出20个最常用的数据结构与算法,我们要 学习他们的“来历”、“特点”、“适合解决什么问题”和“实际应用场景”。
    • 10个数据结构 :数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;
    • 10个算法 :递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

3.怎么学

  • 1.边学边练,每周花一定的时间集中攻关三节课涉及的数据结构和算法,全部写出来。
  • 2.多提问、多思考、多互动。
  • 3.自我激励,打怪升级法。提升自我成就感。
  • 4.沉淀法,先把基础的数据结构和算法掌握,再追求更高的层次。

你可能感兴趣的:(数据结构与编程之美,数据结构与算法)