写点什么

数据结构与算法必备书单,我们都帮你整理好了

  • 2019-01-16
  • 本文字数:2113 字

    阅读完需:约 7 分钟

数据结构与算法必备书单,我们都帮你整理好了

文章出处:极客时间《数据结构与算法之美》专栏


“算法,先于计算机存在于世,比编程语言本身更为重要。语言只是工具,算法才是灵魂。”这是云风在《游戏之旅:我的编程感悟》这本书里一个非常经典的表述。


市面上算法书比比皆是,究竟哪些书值得看,哪些书适合什么基础的人来看呢?


鉴于此,我针对不同层次、不同语言的程序员,我分别选择了不同的书。你可以看看自己究竟处于哪个层次,来对症下药。希望每位想在数据结构与算法上得到提升的同学,都能找到适合自己的学习资料,都能在现有水平上有所提高。



手绘图出自极客时间《数据结构与算法之美》专栏

针对入门的趣味书

如果你是入门的同学,我推荐你阅读《大话数据结构》和《算法图解》这两本书。


《大话数据结构》这本书最大的特点是,它把理论讲得很有趣,不枯燥。而且每个数据结构和算法,作者都结合了生活中的例子,能让你有非常直观的感受。虽然这本书有 400 页,但是花两天时间读完应该是没问题的。所以,如果你之前完全不懂数据结构和算法,可以先从这本书看起。


《算法图解》这本书跟《大话数据结构》走的是同样的路线,就像这本书副标题写的那样,“像小说一样有趣的算法入门书”,主打“图解”,通俗易懂。它只有不到 200 页,所以内容也比较少。作为入门,看看这本书,能让你对数据结构和算法有个大概的认识。


针对入门的同学,我推荐书的依据是看厚度。《算法导论》《算法》这些书虽然比较经典、比较权威,但是非常厚。初学就去啃这些书肯定是比较费劲的。而一旦学不下来,挫败感就会很强。所以,如果是入门,我建议找一些比较薄的书来看。不要太在意书写得深浅,重要的是能不能坚持看完。


但是如果想要系统地学数据结构和算法,看这两本书肯定是不够的。这些入门书共同的问题是,缺少细节,不够系统,也不够严谨。所以,如果你已经有了一定基础,这两本书就满足不了你的需求了。

针对特定编程语言的教科书

讲数据结构和算法,肯定会跟代码实现挂钩。所以,很多人就很关心,某某书籍是用什么语言实现的,是不是自己熟悉的语言。市面大部分数据结构和算法书籍都是用 C、C++、Java 语言实现的,还有些是用伪代码。


所以,我首先推荐《数据结构和算法分析》。国内外很多大学都拿它当作教材。因为这本书非常系统、全面、严谨,而且又不是特别难,适合对数据结构和算法有些基本了解,并且掌握了至少一门编程语言的同学。而且,这个作者也很用心,他用了三种语言,写了三个版本,分别是:《数据结构与算法分析 : C 语言描述》《数据结构与算法分析 : C++描述》《数据结构与算法分析 : Java 语言描述》。

面试必刷的宝典

算法对于面试很重要,很多人也很关心。我这里推荐几本有益于面试的书籍,分别是《编程之美》《剑指 offer》《编程珠玑》。


从《剑指 offer》这本书的名字就可以看出,作者的写作目的非常明确,就是为了面试。这本书几乎包含所有常见的、经典的面试题,所以只要能搞懂里面的内容,应付一般公司的面试应该不成问题。


《编程珠玑》这本书的豆瓣评分非常高,有 9 分之高。这本书最大的特色是讲了很多针对海量数据的处理技巧。这个可能是其他算法书籍很少涉及的。面试的时候,海量数据处理的问题也是经常被问到的,特别是校招面试,所以不管是开拓眼界,还是应付面试,这本书都值得一看。


《编程之美》这本书的作者,绝大部分都是微软的工程师,所以质量很有保证。不过,这里面的算法题目稍微有点难,也不是很系统,这也是为什么我把它归到面试这一部分的原因。如果你有一定基础,也喜欢钻研些算法问题,或者是要面试 Google、Facebook 这样的公司,可以拿用这本书里的题,先自测一下。

经典大部头

如果前面推荐的书籍你都没听过,那下面这两本你肯定不会陌生,那就是《算法导论》和算法》。很多人一提到算法书籍就会搬出这两本,不过这两本虽然经典、出名,但也都特别厚,看起来很费劲。我估计全书读下来的人没多少。但是如果你想对数据结构和算法已经有更深入的了解,我还是非常建议你看看。


我个人觉得,《算法导论》这本书的章节安排的先后顺序不是很循序渐进,里面充斥着各种算法的正确性、复杂度的证明、推导,数学公式比较多,一般人看起来都会比较吃力。


《算法》这本书也是一本经典大部头,不过它比起《算法导论》来要友好很多,更容易看懂,更适合初学者入门。但是这本书的缺点也很明显,就是内容不够全面,比如动态规划这么重要的知识点这本书就没有讲。对于数据结构的东西,它讲的也不多,基本就是偏重讲算法。

殿堂级经典

如果说《计算机程序设计艺术》敢称数据结构与算法界的经典书第二,应该无人敢称第一。这本书包括很多卷。说实话,我也只看过比较简单的几卷,比如《基本算法》《排序和查找》。


这套书的深度、广度、系统性、全面性是其他所有数据结构和算法书籍都所无法相比的。但是,如果你不是对算法和数据结构特别感兴趣,没有很好的数学、算法、计算机基础,想要把这些书都读完读懂是比较难的。你可以把它当作你算法学习的终极挑战。


当然,除了书籍,还有更好的方式。40000+程序员已经加入的极客时间专栏《数据结构与算法之美》,用最适合工程师的方式为你讲解,最常用、最核心的数据结构与算法。你可以利用一切碎片时间,地铁上、或者躺在家里舒服的床上去学习。

用户评价


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-01-16 18:1417462

评论

发布
暂无评论
发现更多内容

想在杭州学前端,千锋IT培训怎么样?学员真实案例

千锋IT教育

SAP | 如何全局处理消息文本

暮春零贰

SAP 10月月更 动态消息

英特尔财报彰显系统级代工渐成气候

科技之家

可观测可回溯 | Continuous Profiling 实践解析

阿里巴巴云原生

阿里云 云原生 可观测

可观测实践|如何使用阿里云 Prometheus 观测 ECS 应用

阿里巴巴云原生

阿里云 云原生

企业数据上云,怎能少的了华为云企业交换机ESW?

科技怪授

ESW

“程”风破浪的开发者|【模块-Java布局】十分钟挑战鸿蒙Codelab组件

liuzhen007

OpenHarmony “程”风破浪的开发者

11 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

培训与认证

【网易云信】Sanitizers 系列之 address sanitizer 用法篇

网易智企

算法 开发语言

ALL in ONE!博睿数据隆重举行ONE 2.0全面上线仪式

博睿数据

可观测性 智能运维 博睿数据 ONE平台

NFT质押挖矿分币系统开发模式定制

开发微hkkf5566

政务数据安全解决方案

前嗅大数据

政务 基础数据方案 数据方案

浅谈长连接负载均衡

捉虫大师

负载均衡 长连接 10月月更

关于软件系统的帮助文档页面,你该知道的那些事儿

Baklib

帮助文档

SAP | ABAP程序结构中的处理块

暮春零贰

SAP 模块化 10月月更

华为云智能云接入ICA,让世界距离更近

科技怪授

ica

拒绝繁琐,华为云企业交换机ESW就是要让数据上云一步到位

科技怪授

ica

用芯弹一首《大加洛普舞曲》:从AI-ISP,透视vivo的双芯之路

脑极体

阿里最新产,SpringCloud微服务核心技术全解手册Github星标50k

程序员小毕

Java 微服务 后端 SpringCloud springcloudAlibaba

极光笔记 | 极光clickhouse千亿级数据分析实践之路

极光JIGUANG

信息技术国产化浪潮中,云科通明湖如何助力企业转型蝶变?

云科通明湖

双活 高可用架构 自主可控

Flink 读写多套 Kerberos 认证的 Kafka 方案

移动云大数据

穿越周期性调整 英特尔多举措布局半导体产业

科技之家

消失与存续——应用交付行业的跌宕演进

云科通明湖

负载均衡 高可用 云原生 信创

网络安全hw蓝队实战之溯源

网络安全学海

网络安全 安全 信息安全 渗透测试 漏洞挖掘

企业上云也可以很智能,智能云接入ICA替企业搭建“上云梯”

科技怪授

ica

千锋大连“匠心8载 感谢有你”周年庆典隆重举行

千锋IT教育

如何引发一场信创负载均衡领域的大变革?

云科通明湖

负载均衡 信创

首次!龙蜥社区生态用户实践精选集发布在即

OpenAnolis小助手

开源 龙蜥社区 生态伙伴 厂商 案例集

千锋沈阳前端怎么样?学员真实案例

千锋IT教育

沉浸其境,共赴云栖数智硬核美学

阿里云视频云

VR/AR 云栖大会 数智融合 超高清视频 云游戏

数据结构与算法必备书单,我们都帮你整理好了_大数据_王争_InfoQ精选文章