一、如何学习数据结构与算法

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

什么是数据结构?什么是算法?(是什么)

数据结构是为算法服务的,算法要作用在特定的数据结构之上。 因此,我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构;
举例:
图书馆储藏书籍你肯定见过吧?为了方便查找,图书管理员一般会将书籍分门别类进行“存储”。按照一定规律编号,就是书籍这种“数据”的存储结构。
那我们如何来查找一本书呢?有很多种办法,你当然可以一本一本地找,也可以先根据书籍类别的编号,是人文,还是科学、计算机,来定位书架,然后再依次查找。笼统地说,这些查找方法都是算法。

学习重点(学什么)

想要学习数据结构与算法,最重要的概念是—复杂度分析,必须熟练拿下,否则数据结构与算法等于没学;
学习图谱:
在这里插入图片描述

以上内容比较多,为此我们需要精简学习,这样才会事半功倍;总结了20个常用的、基础的数据结构与算法,不管是面试还是工作,只要掌握这20个点,就完全足够了,如下:
10种数据结构:数组、链表、栈、队列、散列表、二叉树、堆、跳表、图、Tire树
10个算法:递归、排序、二分查找、搜索、哈希算法、贪心算法、分治算法、回溯算法、动态规划、字符串匹配算法

学习数据结构和算法的过程,是非常好的思维训练的过程,所以,千万不要被动地记忆,要多辩证地思考,多问为什么。如果你一直这么坚持做,你会发现,等你学完之后,写代码的时候就会不由自主地考虑到很多性能方面的事情,时间复杂度、空间复杂度非常高的垃圾代码出现的次数就会越来越少。你的编程内功就真正得到了修炼。

学习技巧(怎么学)

1.边学边练,适度刷题
掌握 -> 应用

2.多问、多思考、多互动
多与学习者交流

3.坚持,不要因为枯燥而放弃

4.知识需要沉淀,细嚼慢咽
不要一下子想掌握所有,不可能,需要沉淀

flag(制定目标)

通过学习数据结构与算法,需要掌握以下:

  1. 熟练掌握复杂度分析
  2. 常见数据结构与算法的理解与优化
  3. 掌握10种数据结构与10个算法,可以从容应对一些面试题与工作
  4. 每种算法必须实现一遍,以项目方式整理到github上
  5. 工作中能写出优秀的代码,减少垃圾代码的输出

猜你喜欢

转载自blog.csdn.net/u013068377/article/details/83011352