写点什么

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

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

    阅读完需:约 7 分钟

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

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


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


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


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



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

针对入门的趣味书

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


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


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


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


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

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

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


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

面试必刷的宝典

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


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


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


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

经典大部头

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


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


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

殿堂级经典

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


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


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

用户评价


2019-01-16 18:1419102

评论

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

开源智慧家居

源字节1号

微信小程序 软件开发

图解制品仓库CodeArts Artifact

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

LED显示屏光污染防治指南

Dylan

国际化 人工 LED显示屏

玩转服务器之Java Web篇:手把手教你搭建Java Web环境 | 京东云技术团队

京东科技开发者

Java 云服务器 京东云 企业号 5 月 PK 榜

多位P8大佬联合打造的Java面试八股文,堪称《Java驾考宝典》

Java你猿哥

Java MySQL redis spring 多线程

当Serverless遇到Regionless:现状与挑战

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

昇腾实战丨DVPP媒体数据处理视频解码问题案例

华为云开发者联盟

人工智能 华为云 昇腾 华为云开发者联盟 企业号 5 月 PK 榜

架构师必备!阿里P8耗时6个月手码架构师进阶笔记真的香

Java你猿哥

Java 架构 ssm 架构师

读书笔记丨理解和学习事务,让你更好地融入云原生时代

华为云开发者联盟

云计算 云原生 华为云 华为云开发者联盟 企业号 5 月 PK 榜

华为云网站安全解决方案助力企业腾“云”驾“务”

YG科技

极光笔记 | 极光推出“运营增长”解决方案,开启企业增长新引擎

极光JIGUANG

营销 运营 用户运营

阿里P9耗时28天,总结历年亿级活动高并发系统设计手册

做梦都在改BUG

Java 架构 系统设计 高并发

京东小程序折叠屏适配探索 | 京东云技术团队

京东科技开发者

京东云 企业号 5 月 PK 榜 京东小程序

kafka高性能设计之内存池

做梦都在改BUG

Java kafka 系统设计 高性能 内存池

RabbitMQ - 1消息队列中间件AMQP协议、和主要角色

Java你猿哥

Java ssm AMQP Rabbit MQ

几种常见的Python数据结构

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

优雅!用了这两款插件,我成了整个公司代码写得最规范的码农

AI乔治

Java 架构 面试 IDEA java代码规范

什么是人工智能领域的过拟合和欠拟合

汪子熙

人工智能 机器学习 深度学习 强化学习 三周年连更

阿里内部架构解密:网络+分布式+RPC+消息中间件+微服务

做梦都在改BUG

Java 架构 微服务

别慌!阿里专家破SpringBoot:入门+基础+进阶+项目

做梦都在改BUG

Java spring Spring Boot 框架

京东APP百亿级商品与车关系数据检索实践 | 京东云技术团队

京东科技开发者

数据库 京东云 企业号 5 月 PK 榜

获得清晰、无噪点的图像:Topaz Photo AI 激活电脑版

真大的脸盆

Mac Mac 软件 图像降噪 图像噪点处理

AI系统伦理道德风险之可信任度验证

陈磊@Criss

AI 伦理道德

外译笔记 | 比尔盖茨:AI与智能手机和互联网一样具有革命性

京东科技开发者

AI 京东云 企业号 5 月 PK 榜

秒验 运营商SDK错误码

MobTech袤博科技

【云管平台】2023年云管平台厂商排行榜

行云管家

云计算 企业上云 云管平台 行云管家

mosn基于延迟负载均衡算法——走得更快,期待走得更稳 | 京东云技术团队

京东科技开发者

负载均衡 京东云 企业号 5 月 PK 榜

「微服务」这10道Consul面试题值得一看

王中阳Go

golang 微服务 面试题 服务发现 服务注册

横空出世!复盘B站面试坑我最深的Java并发:JDK源码剖析

做梦都在改BUG

Java 源码 jdk 高并发

太强了!京东首席架构师深邃洞察:服务化+云原生+微服务

做梦都在改BUG

Java 架构 微服务 云原生

惊艳的数据可视化案例 让可视化设计灵感迸发

2D3D前端可视化开发

数据分析 数据可视化 数据可视化工具 前端数据可视化 数据可视化设计

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