数据结构与算法书籍推荐_数据结构与算法那本书好-程序员宅基地

技术标签: 算法  数据结构书单  数据结构与算法书  算法书籍  数据结构与算法  数据结构  

学习数据结构与算法,还是很有必要看几本相关的书籍,但根据不同基础的人,合适看的书也不一样,因此,针对不同层次、不同语言的人,推荐几本市面上口碑不错的书。

1. 入门级

针对刚入门的同学,建议不要急着去看那些经典书,像《算法导论》、《算法》这些比较经典、权威的书。虽然书很好,但看起来很费劲,如果看不完,效果会很不好。所以建议先看两本入门级的趣味书:

  1. 《大话数据结构》
  2. 《算法图解》

大话数据结构

将理论讲的很有趣,不枯燥。作者结合生活中的例子去对每个数据结构和算法进行讲解,让人通俗易懂。

算法图解

这是一本像小说一样有趣的算法入门书,书中有大量的图解,通俗易懂。

看完上面一本或两本入门级的书,你就会对数据结构和算法有个大概认识和学习。但这些入门级的书缺少细节、不够系统。所以想要深入的学习数据结构和算法,光看这两本书肯定是不够的。

2. 不同语言的教科书

国内外很多大学都是将《数据结构和算法分析》作为教科书。这本书非常系统、严谨、全面,难度适中,很适合对数据结构和算法有些了解,并且已经掌握了至少一门语言的同学学习。针对不同的语言,分别有:

  1. 《数据结构与算法分析:C语言描述》

  2. 《数据结构与算法分析:C++描述》

  3. 《数据结构与算法分析:java语言描述》

如果你不会C、C++、java,会Python或者JavaScript,可以看:

  1. 《数据结构与算法JavaScript描述》

  2. 《数据结构与算法:Python语言描述》

3. 面试书籍

现在很多大厂的面试都会考算法题,这里推荐几本面试算法书籍:

  1. 《剑指offer》

  2. 《编程珠玑》

  3. 《编程之美》

剑指offer

为面试算法量身定做的一本书。几乎包含了所有常见的、经典的面试题,如果能搞懂书里面的内容,一般公司的算法面试都应该没问题。

编程珠玑

这本书豆瓣评分有9分,评分很高。这本书最大的特色是讲了很多海量数据的处理技巧。其他算法书籍很少涉及海量数据。

编程之美

有些作者是微软工程师,算法题目较难,比较适合要面试Google、Facebook这样的公司的人去看。

4. 经典书籍

现在数据结构与算法最经典的书籍就是:

  1. 《算法导论》

  2. 《算法》

  3. 《计算机程序设计艺术》

这三本书非常经典,但都很厚,看起来比较费劲,估计很少有人能全部看完。但如果想更深入地学一遍数据结构和算法,还是建议去看看。

算法导论

章节安排不是循序渐进,里面有各种算法正确性、复杂度的证明、推导,对数学功底有一定要求,看起来有些费劲。

算法

偏重讲算法。内容不够全面,对数据结构方面的知识讲的不多,动态规划这么重要的知识点却没有讲。

计算机程序设计艺术

这本书包括很多卷,相比于其他书籍有更好的深度、广度、系统性和全面性。但如果你对数据结构和算法不是特别感兴趣,没有很好的数学、算法、计算机基础,很难把这本书读完、读懂。

5. 课外阅读

有些算法书籍也比较适合在平时悠闲的时候翻翻看看:

  1. 《算法帝国》

  2. 《数学之美》

  3. 《算法之美》

这些书都列举了大量的列子来解释说明,非常通俗易懂。

下面给出一张上面推荐的数据结构与算法书籍的思维导图:
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/salmon_zhang/article/details/88603207

智能推荐

linux vi编辑器 乱码,vi编辑器笔记 + vim乱码的解决-程序员宅基地

文章浏览阅读367次。vi 文件名 进入命令模式命令模式--i、a、o、I、A、O-->插入模式--ESC键-->命令模式i:在光标之前添加文本I:在光标行首添加文本a:在光标之后添加文本A:在光标行末添加文本o:在光标下插入新行O:在光标上插入新行命令模式--:-->编辑模式--回车-->命令模式:set nu 回车设置行号:set nonu 回车取消行号:n 移至文件的第n行:n1,n2d ..._vi unicode乱码

Verilog编程之道-- task 和 function_verilog function可综合吗-程序员宅基地

文章浏览阅读2.8k次。注意:task和function 都是可以综合的,但是有诸多的要求和限制,所以要谨慎使用不同点 1function 不能包含时序控制语句,只能在一个时间单位执行,而task就可以包含时序控制语句 2 function 不能调用task,而task 可以调用function 3 function至少要有一个input参数,不能有output 和 inout 类型参数,而task既可以没有参数,也可以有各种类型参数 4 function..._verilog function可综合吗

poj2386 dfs_poj2386算法思路-程序员宅基地

文章浏览阅读116次。题意:有一个N*M的院子,八连通的积水是认为被连接在一的,求有几个水洼。思路:从每个M开始向八个方向搜,把搜过的M变成.知道搜不到为止。时间复杂度O(8*N*M)Sample Input10 12W........WW..WWW.....WWW....WW...WW..........WW..........W....W......W...W.W.....WW.W.W.W........_poj2386算法思路

Windows Server 配置(七)VPN服务器的安装-程序员宅基地

文章浏览阅读5.2k次。VPN服务器是双网卡或多网卡的配置,一块网卡连接内网,另一块连接外网,同时外网或远程的客户端可以通过建立VPN连接访问到内网资源。两块网卡分别设置好地址,外网网卡的地址是否能做的,或者是在路由器上做NAT需要进一步了解。VPN的配置VPN的配置创建用户以上操作完成后在VPN服务器上就创建了可以远程连接的用户。

Light oj 1045 (求某个数的阶乘在x进制下的位数)_求x进制下的位数-程序员宅基地

文章浏览阅读437次。Digital Of factorialTime Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %lluSubmit Status Practice LightOJ 1045 uDebugDescriptionFactorial of an integer is defi_求x进制下的位数

URDF/COLLADA file is not a valid robot model.解决方法-程序员宅基地

文章浏览阅读1.9k次。URDF/COLLADA file is not a valid robot model.解决方法很多次遇到URDF/COLLADA file is not a valid robot model,是各种各样的错误导致的,写下来希望能对我这样的新手有所帮助。很可能是在打开moveit_setupassistant前,没有打开roscore.1.通过SolidWorks生产URDF文件之后,是不是没有编译? 新建一个文件夹,在文件夹内部创建src文件夹,把SolidWorks生成的URDF文件夹放进sr_urdf/collada file is not a valid robot model.

随便推点

java 连接 sftp失败_关于java调用sftp下载文件报 No such File 错误的问题总结-程序员宅基地

文章浏览阅读2.2k次。/*** 对账文件入库*@paramtyjSaleActrDTOList*@throwsIOException*/private String cmPaymentCheckInsertData(List tyjSaleActrDTOList) throwsIOException {logger.info("====对账文件入库开始========");String flag= "0";Calend..._java new sftp连接失败不抛出异常

python能在excel运行吗-Python:使用Python运行Excel宏-程序员宅基地

文章浏览阅读611次。我需要通过python运行一个Excel宏,我总是会得到以下错误:result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0..._excel trigger python 环境运行

session入memcache_session 入memcache-程序员宅基地

文章浏览阅读321次。<?phpini_set("session.save_handler", "memcache");ini_set("session.save_path", "tcp://localhost:11211");session_start();header("Content-type:text/html;charset=utf-8");$_SESSION['view'] = 'zhangsan_session 入memcache</div>

创建Tableau Public个人站点_创建tableau站点-程序员宅基地

文章浏览阅读2.4k次。Tableau Public是Tableau的免费版本,所以不能进行本地的保存,只能在Tableau的服务器创建个人的站点,进行可视化图谱的保存,每个用户有 10G的空间,可以进行发布。所以我们需要进行站点注册站点注册注册在Tableau Public的网站进行注册【链接】,点击注册创建配置文件在完善配置文件之后,即可创建个人站点个人中心查看以上,就表示个人站点已经创建成功,在使用Tableau Public创建文件,需要发布可视化图谱之后,即可发布到个人站点。..._创建tableau站点

先访问redis再访问mysql_Redis和MySQL数据一致中出现的几种情况-程序员宅基地

文章浏览阅读476次。1. MySQL持久化数据,Redis只读数据redis在启动之后,从数据库加载数据。读请求:不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取写请求:数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)2.MySQL和Redis处理不同的数据类型MySQL处理实时性数据,例如金融数据、交易数据Redis处..._为什么要先从redis里获取数据再数据库

apt 软件安装_aptlite 安装软件-程序员宅基地

文章浏览阅读994次。文章目录一、安装卸载二、配置软件源一、安装卸载对应英文:Advanced Packaging Toolapt 是 Linux 系统中的 安装包管理工具序号命令作用01sudo apt install 软件名安装软件02sudo apt remove 软件名卸载软件03sudo apt uograde升级已安装的软件包二、配置软件源..._aptlite 安装软件

推荐文章

热门文章

相关标签