推荐一下「算法与数据结构」从入门到进阶的书单。

一.入门系列

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

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

1.1 《啊哈!算法》

image

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

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

割点与割边算法、二分图的最大匹配算法等

1.2《算法图解》

image

推荐理由:这本图解书很容易看懂,不枯燥。

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

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

image

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

1.4《趣学算法》

image

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

使读者体验算法的奥妙

1.5《大话数据结构》

image

推荐理由:文中附有大量插图,适合对大段文字提不起兴趣的朋友。

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

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

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

二.基础系列

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

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

2.1《算法导论中文版》

image

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

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

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

image

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

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

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

image

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

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

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

image

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

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

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

image

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

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

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

image

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

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

三.进阶系列

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

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

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

image

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

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

3.2《算法谜题》

image

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

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

image

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

四.工作系列

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

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

image

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

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

4.2《程序员实用算法》

image

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

4.3《编程之美》

image

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

五.大佬系列

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

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

image

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

5.2《集体智慧编程》

image

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

End

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

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

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

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

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

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

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

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

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

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

简单推荐了一些我比较喜欢的书籍,如果都能看完看懂且科学的总结外加合理的实践,相信未来你的技术路会更好走,当然BATJ这些的Offer也不在话下。

除了多看点技术书,你觉得还有什么能拿出来和985,211的朋友比呢?

与君共勉:)

欢迎关注我的个人公众号:五分钟学算法 一起学算法

五分钟学算法

后台回复 1024 送你算法编程书籍

image

python数据结构推荐书-「算法与数据结构」从入门到进阶吐血整理推荐书单相关推荐

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

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

  2. 算法与数据结构+一点点ACM从入门到进阶吐血整理推荐书单

    前言:技术书阅读方法论 一.速读一遍(最好在1~2天内完成) 人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用. 对于每一章的知识,先阅读标题, ...

  3. 算法与数据结构+一点点ACM从入门到进阶吐血整理推荐书单(珍藏版)

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2: 780902027 前言:技术书 ...

  4. un系统服务器双网卡,「保姆级教程」unRaid入门到精通七:直通网卡、硬盘和其它PCI硬件设备...

    本章前言: 上一章节讲过unRaid安装NVIDIA驱动独立显卡加速EMBY,详细见<「保姆级教程」unRaid入门到精通六:unRaid安装NVIDIA驱动独立显卡加速EMBY>,本章将 ...

  5. 「R shiny基础」交互式入门

    上一节的「R shiny基础」增加一些小控件放在网页中的控件只能说是装饰品,要想真正让用户通过选择不同参数来得到不同结果,还需要这一节的知识 举个例子:我们希望下面网页在左边选择后,右边会有对应的输出 ...

  6. 「算法与数据结构」时间与空间复杂度

    写在前面 可能有些人会吐槽,学算法有什么用,顶多就是去面试大厂的时候能用上,大厂面试算法也只是强中筛强的一个敲门砖而已,我又不去面大厂,不用学它,真的是这样吗? 肯定不是,在计算机行业发展,不管是前端 ...

  7. Python爬取「英语流利说」的配音视频数据(第一次粉一个人)

    一.故事开端 程序猿有时候很痛苦,遇到问题解决不了就睡不着,也找不到人倾诉,只能通过失眠来解脱,那天长夜漫漫,我却无心睡眠,就拿起手机继续刷朋友圈,发现了睡前故事这个信息: 就手贱点进去一看,妈呀顿时 ...

  8. python带我起飞_Python带我起飞:入门、进阶、商业实战

    <Python带我起飞:入门.进阶.商业实战>针对Python3.5以上版本,采用"理论+实践"的形式编写,通过大量的实例(共42个),全面而深入地讲解"Py ...

  9. python黑魔法指南_python黑魔法一天从那个入门到进阶

    原标题:python黑魔法一天从那个入门到进阶 有很多人说学习Python基础之后不知道干什么,不管你是从w3c还是从廖雪峰的教程学习的,这些教程都有一个特点:只能引你快速入门,但是有关于Python ...

最新文章

  1. ASP.NET ListView控件基本操作
  2. 022 Spark shuffle过程
  3. 蹭课神器NABCD分析
  4. 1364: 开灯与关灯(深入思考问题更妙哦~~)
  5. 嵌入式系统系统升级内核双备份的实现方式
  6. .net 用户控件ascx.cs注册js脚本代码无效果
  7. PVSCSI还是LSI logic?VM SCSI控制器驱动的选择
  8. .net byte转java byte_Java 最小值之谜
  9. pdf虚拟打印机免费版使用教程
  10. ARM与中国的深度合作引发的关注
  11. bat批处理注册dll
  12. 对接饿了么 获取授权
  13. MSP430CPU介绍
  14. A Jupyter widget could not be displayed because the widget state could not be found.
  15. Adobe Acrobat的安装时出现:服务print spooler启动失败,请确认您有足够权限启动系,打印机print spooler系统服务不能正常启用解决办法
  16. Encoder-Decoder综述理解(推荐)
  17. 《他是谁》爆火,优酷的成功并非偶然
  18. 经营收款限制个人收款码,商户的个税会受影响吗?
  19. HTML--onkeydown和onkeyup区别
  20. Delphi 2009发布

热门文章

  1. python列表导出csv_将Python列表导出到csv
  2. ios 设置属性的center_IOS开发-常用UI控件的基本使用(Transform形变属性、frame属性、center属性的使用)...
  3. 关于idea plugin测试那些事(纯手工翻译,只为打发时间,如果有错误,欢迎提建议,如果有意见,我相信别家一定更适合你)
  4. 单元测试以及dagger的使用
  5. kibana智能检索发送多次_msearch —— 配置index pattern,同时设置时间段,就知道到底是在哪些索引里去查找数据了...
  6. 时序数据库深入浅出之存储篇——本质LSMtree,同时 metric(比如温度)+tags 分片...
  7. Druid:一个用于大数据实时处理的开源分布式系统——大数据实时查询和分析的高容错、高性能开源分布式系统...
  8. python 让系统不识别转义字符 print的时候直接输出
  9. java静态代理与动态代理简单分析
  10. mysql删除数据后不释放空间问题