前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >「算法与数据结构」从入门到进阶整理推荐书单

「算法与数据结构」从入门到进阶整理推荐书单

作者头像
五分钟学算法
发布于 2019-01-23 10:13:07
发布于 2019-01-23 10:13:07
1.6K0
举报
文章被收录于专栏:五分钟学算法五分钟学算法
总第59篇/程序员小吴

小吴花了几天时间整理了一下学习「数据结构与算法」可以参考的书籍,希望能在学习的道路上帮到你,文末提供收集的PDF版。

一.入门系列

这些书籍通过图片、打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。

很适合在闲暇之余拿出来阅读一番。

1.1 《啊哈!算法》

阅读链接:https://book.douban.com/subject/25894685/

这不过是一本有趣的算法书而已。和别的算法书比较,如果硬要说它有什么特点的话,那就是你能看懂它。

推荐理由: 本书中涉及到的数据结构有栈、队列、链表、树、并查集、堆和图等;涉及到的算法有排序、枚举、深度和广度优先搜索、图的遍历,当然还有图论中不可以缺少的四种最短路径算法、两种最小生成树算法、 割点与割边算法、二分图的最大匹配算法等

1.2《算法图解》

阅读链接:https://book.douban.com/subject/26979890/

推荐理由:这本图解书很容易看懂,不枯燥。 书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。

1.3《妙趣横生的算法(C语言实现 第2版)》

阅读链接:https://book.douban.com/subject/4710825/

推荐理由:理论与实践相结合,旨在帮助读者理解算法,并提高C语言编程能力,培养读者的编程兴趣,并巩固已有的C语言知识。

1.4《趣学算法》

阅读链接:https://book.douban.com/subject/27109832/

推荐理由:非常好的一本书,图解多,思路清晰,不仅讲了问题分析算法设计的过程,还讲了如何优化算法, 使读者体验算法的奥妙

1.5《大话数据结构》

阅读链接:https://book.douban.com/subject/6424904/

推荐理由:文中附有大量插图,适合对大段文字提不起兴趣的朋友。 以一个计算机教师教学为场景,讲解数据结构和相关算法的知识。通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比,并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较。与市场上的同类数据结构图书相比,本书内容趣味易读,算法讲解细致深刻,是一本非常适合自学的读物。

1.6 《学习算法思想 修炼编程内功》

慕课网链接:https://coding.imooc.com/class/71.html

推荐理由:视频课程,这样精致的课程很难找到第二个,我暂时还没看过比这个课程能更好的进行算法入门了,小吴的PPT制作动画灵感就是来源于此。

二.基础系列

通过基本入门算法书的调教,你已经逐渐体会到了算法的魅力,现在正是时候去阅读基础系列踏入算法的领域!!!

这些书籍需要你费点心思去阅读。

2.1《算法导论中文版》

阅读链接:https://book.douban.com/subject/20432061/

排在基础系列第一的位置应该没意见吧:)

推荐理由:本书将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。

2.2《数据结构与算法 Java版》

阅读链接:https://book.douban.com/subject/21519616/

适合想通过Java语言来学习算法的小伙伴们。

推荐理由:本书把算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,内容全面、缜密严格,并细致讲解精心构造程序的方法。

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

阅读链接:https://book.douban.com/subject/26702568/

适合想通过Python语言来学习算法的小伙伴们。

推荐理由:本书基于Python语言介绍了数据结构与算法的基本知识,主要内容包括抽象数据类型和Python面向对象程序设计、线性表、字符串、栈和队列、二叉树和树、集合、排序以及算法的基本知识。本书延续问题求解的思路,从解决问题的目标来组织教学内容,注重理论与实践的并用。

2.4《学习JavaScrit数据结构与算法(第2版)》

阅读链接:https://book.douban.com/subject/26639401/

适合想通过JavaScrit语言来学习算法的小伙伴们。

推荐理由:本书首先介绍了JavaScript语言的基础知识,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、顺序搜索、二分搜索,还介绍了动态规划和贪心算法等常用的高级算法及相关知识。

2.5《数据结构与算法分析:C语言描述(原书第2版)》

阅读链接:https://book.douban.com/subject/1139426/

适合想通过C语言来学习算法的小伙伴们。

推荐理由:在本书中,作者更加精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。

2.6《数据结构与算法分析:C++描述(第3版)》

阅读链接:https://book.douban.com/subject/1971825/

适合想通过C++语言来学习算法的小伙伴们。

推荐理由:这是是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。

三.进阶系列

掌握了一定的数据结构与算法的知识,现在你已经是一名合格的程序员了。但如果你想要参加面试,那就需要阅读以下书籍进行准备了。

这些书籍需要你花费时间和精力去仔细阅读,但为了涨薪,值得!

3.1 《剑指Offer:名企面试官精讲典型编程题(第2版)》

阅读链接:https://book.douban.com/subject/27008702/

我想,只要是程序员应该都听说过这本书吧,哪怕你没看过。

推荐理由:《剑指Offer:名企面试官精讲典型编程题(第2版)》剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。

3.2《算法谜题》

阅读链接:https://book.douban.com/subject/25805152/

推荐理由:算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。

3.3《编程之法 面试和算法心得》

阅读链接:https://book.douban.com/subject/26641732/

推荐理由:本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。

四.工作系列

适合已经工作的程序员阅读,可以提升你的思维广度,也可以在面试前翻一翻。

4.1《编程珠玑(第2版•修订版)》

阅读链接:https://book.douban.com/subject/26302533/

历史上最伟大的计算机科学著作之一!!!

推荐理由:融深邃思想、实战技术与趣味轶事于一炉的奇书,带你真正领略计算机科学之美。

4.2《程序员实用算法》

阅读链接:https://book.douban.com/subject/3923731/

推荐理由:《程序员实用算法》重点关注的是实用、立即可用的代码,并且广泛讨论了可移植性和特定于实现的细节。《程序员实用算法》作者介绍了一些有用但很少被讨论的算法,它们可用于语音查找、日期、B树和索引文件、数据压缩、任意精度的算术、校验和与数据验证,并且还最全面地介绍了查找例程、排序算法和数据结构。

4.3《编程之美》

阅读链接:https://book.douban.com/subject/3004255/

推荐理由:这本书收集了约60道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。

五.大佬系列

适合大佬们踏入的领域,小吴膜拜中。

5.1《数据挖掘原理与算法》

阅读链接:https://book.douban.com/subject/2341863/

推荐理由:内容覆盖面最广,除了所有书都有的内容外,还包括FOIL算法和空间数据挖掘等。

5.2《集体智慧编程》

阅读链接:https://book.douban.com/subject/3288908/

推荐理由:非常实用的宝典,看了这本书,如果有工具,可以解决大部分问题。

End

当你计划开始学习一门课程、阅读一本经典教材时,请先明确你要期望达到的目标。具体来说,就是问自己一个问题:

我期望从这本书中收获哪些东西?

不同的课程、不同的书籍,期望的目标应该是不一样的,并且是越具体越好。

比如看上面的入门系列,可以抱着娱乐的心态在业余时间看看。而看基础系列,就要规划好一段时间,边看边做笔记。

推荐一个金老师的学习方法给小伙伴们:多遍扫描法。

第一遍是略读,把一本书从头翻到尾,快速地阅读,不深钻细节,只看背景、结论和实际应用,即使遇到看不懂的地方也不要停下来,继续看下去,这一遍的目的是让你对这本书有一个总体上的印象。基于这个印象,你就能确定全书哪里难,哪里易,哪里是重点,这样就能制定下一步的攻读策略。

第二遍则是“细读”与“攻读”,选择你感兴趣的,感觉最重要的内容慢慢地读,可以采用一些行之有效的阅读手段(比如记要点然后尝试回顾、绘制思维导图等)吸收书中的知识。对于难点,关键是弄明白为什么你看不懂(数学公式看不懂?关键术语不明白?翻译有问题?),你就能对症下药了,比如本书写得太抽象,可以先看看比较浅显的科普类书籍,之后再回过头来再看,或者找几本不同作者写的类似的教材对照着看……

上述过程可能需要重复几次。并且可能前后两次之间会间隔一个较长的时间。

人学习特定领域的知识需要一个过程,并且需要反复的。

所以要耐心,学习是很少有可能毕其功于一役的。

如果你想获取上述所有书籍的PDF版,公众号内回复 1024 即可

掏空小吴计划

/ 今日问题 /

留言主题 : 推荐的这些书籍,你看过哪本?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 五分钟学算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
树莓派基础实验10:干簧管传感器实验
   磁簧开关(Reed Switch)也称之为干簧管,它是一个通过所施加的磁场操作的电开关。基本型式是将两片磁簧片密封在玻璃管内,两片虽重叠,但中间间隔有一小空隙。当外来磁场时将使两片磁簧片接触,进而导通。 一旦磁体被拉到远离开关,磁簧开关将返回到其原来的位置。可以用来计数或限制位置。
张国平
2020/09/27
1.4K0
云中树莓派(4):利用声音传感器控制Led灯
将 VCC 引脚接入树莓派 5V 引脚,将 GND 引脚接入树莓派 GND 引脚,将 OUT 引脚接入树莓派 GPIO20。
SammyLiu
2019/06/28
1.3K0
云中树莓派(4):利用声音传感器控制Led灯
树莓派基础实验21:烟雾报警传感器实验
   气体传感器MQ-2是检测空气中可燃气体浓度的易燃气体和烟雾传感器。他们经常用于家用、工业或汽车中的烟气和易燃气体,如液化石油气,异丁烷,丙烷,甲烷和酒精的气体检测设备。
张国平
2020/09/27
3.1K0
树莓派基础实验19:光敏传感器实验
   该传感器实际上是一个光敏电阻,它随着光强的变化而改变其电阻,它可以用来制作光控开关。
张国平
2020/09/27
3K0
树莓派4b基础入门「建议收藏」
树莓派(Raspberry Pi)是一款基于ARM的微型电脑主板,旨为学生计算机编程教育而设计,其系统基于Linux,由注册于英国的慈善组织“Raspberry Pi基金会”开发,Eben·Upton为项目带头人。别看其外表“娇小”,内“心”却很强大,上网、看视频、听音乐等功能都有,可谓是“麻雀虽小,五脏俱全”。自问世以来,受众多计算机发烧友和创客的追捧。 1.树莓派的家族
全栈程序员站长
2022/07/01
7.6K0
树莓派4b基础入门「建议收藏」
树莓派基础实验23:触摸开关传感器实验
   金属触摸传感器是一种仅在,被带电体触摸时,才操作的开关。它有一个接受电子信号时通电的,高频晶体管。
张国平
2020/09/27
1.7K0
树莓派基础实验33:TCRT5000红外循迹传感器实验
  红外跟踪循迹传感器使用TCRT5000循迹模块。TCRT5000采用的是蓝色的LED发射管,通电后发出人眼看不到的红外线。传感器的黑色部分用于接收,内部电阻器的电阻随所接受的红外光而变化。
张国平
2020/09/27
2.8K0
树莓派综合项目1:智能温度测量系统实验
  我们可以在编程时通过操纵杆PS2调整下限和上限值。操纵杆PS2有五个操作方向:向上、向下、向左、向右和向下按压。在这个项目中,我们将使用左右方向来控制上限值,上下方向来控制下限值。如果按一下操纵杆,系统将退出。
张国平
2020/09/27
1.3K1
【物联网】光影之谜:RGB-LED传感器引领科技变革之路
物联网(Internet of Things,IoT)是一项引领科技前沿的技术奇迹,通过互联网技术将各类实体物体、传感器、软件等连接起来,构建起一个巨大的网络体系,使得这些设备能够以高度协同的方式实现信息的互通和共享。
SarPro
2024/02/20
3500
【物联网】光影之谜:RGB-LED传感器引领科技变革之路
树莓派基础实验14:PS2操纵杆实验
   操纵杆是一种输入设备,由一根可在基座上旋转,并向其控制的设备报告其角度或方向的操纵杆组成。操纵杆通常用于控制视频游戏和机器人。这里使用操纵杆PS2。
张国平
2020/09/27
2.3K0
树莓派基础实验4:继电器实验
   继电器是一种用于响应施加的输入信号,而在两个或多个点或设备之间提供连接的设备。换句话说,继电器提供了控制器和设备之间的隔离,因为我们知道设备可以在AC和DC上工作,但是他们从微控制器接收信号,因此,我们需要一个继电器来弥补差距。当需要用小电信号控制大量电流或电压时,继电器非常有用。
张国平
2020/09/28
3K0
树莓派基础实验4:继电器实验
树莓派基础实验5:激光传感器实验
   由于其良好的指向性和能量集中性,激光广泛用于医疗军事等领域,顾名思义,激光发射模块是一种可以发射激光的模块。
张国平
2020/09/28
1.5K0
树莓派基础实验5:激光传感器实验
树莓派基础实验9:蜂鸣器实验
   蜂鸣器是音频信号装置,蜂鸣器可分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器直接接上额定电源就可以连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能周期性地振动发声。
张国平
2020/09/27
3.7K0
树莓派基础实验7:倾斜开关实验
  在倾斜开关中球以不同的倾斜角度移动,以制造触发电路。倾斜开关模块使用双向传导的球形倾斜开关。当它向一侧倾斜时,只要倾斜度和力满足条件开关就会通电,从而输出低电平信号。
张国平
2020/09/27
1.3K0
树莓派基础实验28:红外避障传感器实验
   IR障碍物传感器根据红外反射原理来检测障碍物,当没有物体时,红外接收器不接受信号;当前方有物体阻挡并反射红外光时,红外接收器将接收信号。
张国平
2020/09/27
3K0
树莓派基础实验13:雨滴探测传感器实验
   雨滴传感器或雨滴检测传感器,用于检测是否下雨以及降雨,广泛用于汽车的雨刷系统,智能照明系统和天窗系统。
张国平
2020/09/27
2.2K0
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
物联网(Internet of Things,IoT)是一项引领科技前沿的技术奇迹,通过互联网技术将各类实体物体、传感器、软件等连接起来,构建起一个巨大的网络体系,使得这些设备能够以高度协同的方式实现信息的互通和共享。
SarPro
2024/02/20
2920
【物联网】液滴即信息:雨滴探测传感器实验解析降雨的密码
树莓派基础实验22:红外遥控传感器实验
   红外接收头的主要功能为IC化的一种受光元件,其内部是将光电二极管(俗称接收管)和集成IC共同组合封装而成,其IC设计主要以类比式控制,一般主要接收38KHZ的频率的红外线,而对其他频率段的红外信号不敏感。这样,遥控器发出载波在38KHZ的频率,接收管接受遥控器发送过来的信息,从而构成通讯。
张国平
2020/09/27
2.4K0
常用数字、模拟量输出传感器原理介绍
哈喽,大家好,本期小飞哥带来的是常用的数字量输出传感器的原理与使用说明,希望能对伙伴们有帮助!
用户8913398
2021/08/16
1.9K0
常用数字、模拟量输出传感器原理介绍
C51 单片机开发震动传感器介绍
本文开始介绍新的内容,开始涉及一些外设,本次整理的是关于震动传感器的东西。传感器的使用并不复杂,只是多了接线的步骤。
码农UP2U
2024/04/18
2970
C51 单片机开发震动传感器介绍
推荐阅读
相关推荐
树莓派基础实验10:干簧管传感器实验
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档