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

举报
Linux猿 发表于 2021/08/05 01:06:12 2021/08/05
【摘要】 先说下本文的定位,更适合于没有基础的,有一定基础的可以从实践提升部分开始看。按照我下面整理的思路学习,保证能让你大幅提升数据结构与算法实践能力! 许多人有这样的疑问,《数据结构与算法》理论学习完了,但是做题还是不会;有的同学感觉数据结构与算法不知道怎么学习。那看这篇文章就对了,下面统统给你解决! 学习数据结构与算法分为两个步骤: 基础理论的学习;不断实践提升; 很简单吧...

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

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

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

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

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

1. 基础理论的学习

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

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

图1 严蔚敏数据结构

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

图2 王道考研辅导书

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

图3 大话数据结构

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

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

图4 算法竞赛入门经典

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

图5 挑战程序设计竞赛

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

图6 算法导论
​​​

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

图7 算法

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

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

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

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

北京大学数据结构课

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

浙江大学数据结构课

王道数据结构课程:

王道数据结构课程

知识的学习:

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

各章重点掌握:

【第一章】

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

【第二章】

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

【第三章】

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

【第四章】

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

【第五章】

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

【第六章】

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

二叉树遍历

【第七章】

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

【第九章】

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

【第十章】

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

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

文章来源: blog.csdn.net,作者:Linux猿,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/nyist_zxp/article/details/118371293

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。