数据结构与算法之美——学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26545305/article/details/87914779

一、前言

       近期在准备面试,而数据结构与算法是面试不可回避的重中之重,可以说只有有笔试题,至少有一道算法题。而算法一直是自己软肋,这次不得不正视这个问题。过去对数据结构与算法一直不太重视,总觉得这些太基础,离实际编程太远,然而事实是,要写出高质量的代码,算法必不可少。最近在极客时间入手了《数据结构与算法之美》,希望能久旱逢甘霖~~~

二、为什么要学习数据结构与算法

        1、想要通关大厂面试,千万别让数据结构和算法拖后腿

         越是厉害的公司,越是注重考查数据结构与算法这类基础知识。我们学任何知识都是为了“用”的,是为了解决实际工作问题的。

         2、业务开发工程师,你真的愿意做一辈子CRUD boy吗

         Spring、RPC框架等基础框架中,一般都糅合了很多基础数据结构和算法的设计思想。比如Redis的sort set是用什么数据结构来实现的?为什么要用跳表来实现?为什么不用二叉树呢?

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

         4、对编程还有追求?不想被行业淘汰?那么久不要只会写凑合能用的代码!

         何谓编程能力强?代码可读性号、健壮?还是可扩展性号?性能好快起码是其中一个非常重要的评判标准

          5、掌握了数据结构与算法,看待问题的深度,解决问题的角度就会完全不一样。

三、怎么学数据结构与算法

       1、什么是数据结构?什么是算法?

       数据结构就是指一组数据的存储结构。拿水来类别,水可以放在锅碗瓢盆,也可以放在大江大河中,那么锅碗瓢盆就是睡的存储结构。算法就是操作数据的一组方法。

      数据结构和算法是相辅相成的。数据结构是为算法服务的,算法要作用在特定的数据结构之上。因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构

     2、复杂度分析

       想要学习数据结构与算法,首先要掌握一个数据结构与算法中最重要的概念-----复杂度分析。这个概念究竟有多重要呢?可以这么说,它几乎占了半壁江山,是重中之重。

       数据结构和算法解决的是如何更省、更快地存储和处理数据的问题。而复杂度分析是衡量效率和资源消耗的方法。

    3、重点--20个知识点

        作者总结了20个最常用的、最基础数据结构与算法,不管是应付面试还是工作需要,只需要集中精力逐一攻克这20个知识点就足够了。

       10个数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Trie树;

       10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法。

     4、一些事半功倍的学习技巧

      ①边学边练,适度刷题

      ②多问、多思考、多互动

      ③打怪升级法

      给自己制定一个切实可行的目标,就像打怪升级一样。

      ④知识需要沉淀,不要试图一下子掌握所有

       学习知识的过程是反复迭代、不断沉淀的过程。

猜你喜欢

转载自blog.csdn.net/qq_26545305/article/details/87914779