如何学习数据结构与算法?过来人的建议!!!方法篇

Posted Linux猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何学习数据结构与算法?过来人的建议!!!方法篇相关的知识,希望对你有一定的参考价值。

先说下本文的定位,更适合于没有基础的,有一定基础的可以从实践提升部分开始看。按照我下面整理的思路学习,保证能让你大幅提升数据结构与算法实践能力!

许多人有这样的疑问,《数据结构与算法》理论学习完了,但是做题还是不会;有的同学感觉数据结构与算法不知道怎么学习。那看这篇文章就对了,下面统统给你解决!

学习数据结构与算法分为两个步骤:

  • 基础理论的学习;
  • 不断实践提升;

很简单吧,和把大象装进冰箱里一样的道理,哈哈!下面就来分别说一下:

1. 基础理论的学习

温馨提示:在学习之前建议先学习一门编程语言,这样在学习理论知识以及在实践环节就可以使用编程语言实现具体算法了,C/C++/Java/Python都可以哒。

这里先说下使用的书籍,大学里的教科书都可以,但我还是推荐使用严蔚敏的《数据结构》,公认的很好的书籍,而且,也是许多大学指定教材以及考研指定参考用书!我在上学以及考研过程中都用到过它,如下所示:

图1 严蔚敏数据结构

王道考研数据结构辅导书,虽然是考研辅导用书,但是这本书中有知识点分析、练习题以及答案,也是不错的哦!

图2 王道考研辅导书

大话数据结构,比较通俗易懂,适合自学:

图3 大话数据结构

如果想要深入提升算法能力,下面这几本最适合不过了。

刘汝佳《算法入门经典入门指南》第二版,紫书,该书分为了不同的篇章,有语言篇、基础篇以及竞赛篇,知识点非常全面,可以先学习基础的,然后再逐步提升!竞赛篇更适合于参加竞赛使用,把这本书过一篇你就是大牛啦,如下所示:

图4 算法竞赛入门经典

学习算法《挑战程序设计》也很不错,是混迹于各种算法竞赛的多个大牛写的书,该书也是分为不同的篇章,书中有许多实用技巧,学习完数据结构与算法可以看这本书:

图5 挑战程序设计竞赛

学习算法那必须知道《算法导论》啦,书很好,但更倾向于一些理论证明,而且书很厚,如果初学者看很容易打击学习积极性,建议留作工具书使用:

图6 算法导论
​​​

最后一本重量级的《算法》,就不用我深入介绍了,用过的都说好,建议也留作工具书使用:

图7 算法

建议先收藏下,后面学习完数据结构与算法基础,深入学习的时候再看后面这几本书!

如果想要快速学习,可以通过看视频的方式,学习的速度更快,但是没有看书记忆深刻。

看视频可以选择下面这些:

北京大学的数据结构课程(注意开课时间):

北京大学数据结构课

浙江大学的数据结构课程(注意开课时间):

浙江大学数据结构课

王道数据结构课程:

王道数据结构课程

知识的学习:

想要掌握基本概念,一般上完大学里的数据结构课就达到要求了。如果你是还没有上数据结构课呢?没关系~,可以自学,不要想着自学很难,自学反而记忆更深刻!

各章重点掌握:

【第一章】

算法的时间复杂度和空间复杂度;

【第二章】

线性表的顺序表示和链式表示;

【第三章】

掌握好栈和队列以及应用;

【第四章】

会使用字符串以及其分配;

【第五章】

一/二维数组以及广义表的表示;

【第六章】

树的三种遍历以及哈夫曼编码;

二叉树遍历

【第七章】

图的存储、遍历、连通性、判环以及最短路径;

【第九章】

静态查找、动态查找以及哈希表;

【第十章】

插入排序、快速排序、归并排序、基数排序以及其比较;

各种排序总结
好啦,基础理论部分的学习就分享到这里,下一篇将介绍如何不断实践提升~

以上是关于如何学习数据结构与算法?过来人的建议!!!方法篇的主要内容,如果未能解决你的问题,请参考以下文章

机器学习算法神经网络与深度学习-7 DNN深度学习算法模型出现学习效果不好的情况,如何补救,对策如下,建议收藏。

过来人对大数据学习的建议

程序员该如何学习数据结构与算法?

排序算法精讲:选择排序和冒泡排序

[新星计划] 为什么要学习数据结构和算法?如何学习?

干货 :如何系统地学习数据挖掘