在数据科学中,算法和数据结构分别构成了数据收集的功能和存储方式。虽然编码和应用数学方面的知识有助于学习这些结构,但事实上,没有任何基础的初学者也可以找到很多适合他们的书籍。其中很多书籍着重介绍某一种结构来帮助读者进行学习,同时使用有效示例和代码来印证该主题背后的理论。掌握数据科学的基础知识后,继续学习算法是一个不错的选择。
本文将讨论关于算法和结构的一系列书籍,这些书籍可以满足各种技能层次的读者,从初学者到中级和高级用户。
1.《算法概论》(英文),作者:Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein
作者:Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest 和 Clifford Stein
网站:Amazon
《算法概论》提供了关于算法的全面概述和指南。它相当于现代算法的百科全书,超过 1,000 页的内容全面涵盖了从理论到实践的方方面面。
此书具有很强的实用性,通过示意图和证据来阐明问题,应用算法,然后对结果进行理论分析。《概论》面向对数学和数据结构较为熟悉的读者,但等不及补习这些基础知识的读者也可以找到足够多的内容来品味。
2.《解锁算法》(英文),作者:Thomas H. Cormen
作者:Thomas H. Cormen
网站:Amazon
《解锁算法》的作者 Thomas Cormen 试图揭开科技的神秘面纱,对其内部工作原理进行解密。许多我们认为理所当然的功能(例如自动 GPS 路由或互联网加密)都是按照应用算法来进行操作的。
此书解释了计算机如何使用算法来解决问题,这个过程会生成我们在日常生活中见到的许多技术任务。此书非常详细地介绍了到底什么是计算机算法,并让读者学会如何使用算法来执行简单的任务,例如搜索、排序和绘图。对于有兴趣了解算法如何在现代世界发挥功能的任何读者而言,这本书都是非常不错的资源。
3.《算法设计手册》(英文),作者:Steven S. Skiena
作者:Steven S. Skiena
网站:Amazon
《算法设计手册》介绍了如何从头创建自己的算法。此书不仅讨论了算法设计理论,还使用示例和基于现实世界的练习来提供参考点。为了轻松转换为算法中使用的各种不同编程语言,Skiena 在书中介绍了“伪代码”。作者介绍了众多现代算法,例如图论、计算几何以及多线程算法。
此书分为两部分:技术和资源。第一部分是“技术”,为读者提供了关于如何设计和分析算法的说明。第二部分是“资源”,为读者提供了大量参考资源(针对 75 个最常见的计算问题),以及随时可以查阅的 C/C++ 和 Java 实现方案。
4.《轻松掌握数据结构和算法:数据结构和算法智力题》(英文),作者:Narasimha Karumanchi
作者:Narasimha Karumanchi
网站:Amazon
此书更大的作用是帮助您针对将要进行的检测(例如面试、考试、或认证)复习相关内容,书中讨论了常见的算法问题及解决办法。涵盖了数据结构的基础知识以及算法的工作原理,让读者学会如何编写自己的算法。
要完成书中的练习题,读者需要对数学和 C/C++ 代码有一定的了解。此书的 400 多页内容分为 20 个章节,实际上可以用作一个算法问题求解练习册。
5.《理解算法:面向程序员和好奇者的插图指南》(英文),作者:Aditya Bhargava
作者:Aditya Bhargava
网站:Amazon
这是一本很好懂的书,程序员可以通过它进一步理解算法以及常见问题的解决方法。此书讨论了一些较常见的实用算法,例如排序和搜索,并由浅入深地过渡到与数据压缩和人工智能相关的更为复杂的问题。
算法示意图对于擅长视觉学习的读者很有帮助,操作指导为整个过程中的每一步提供了说明。每个示例都带有 Python 参考代码。此书不适合零基础初学者,但具有一定编程技能的读者可以将其用作指南或复习材料。
6.《算法》(英文),作者:Robert Sedgewick 和 Kevin Wayne
作者:Robert Sedgewick 和 Kevin Wayne
网站:Amazon
《算法》标题简单,内容却不简单。不要被极为简洁的名字欺骗,这本书其实很有深度。这是一本详尽的教科书,它以纤毫毕现的方式讨论了算法和数据结构,堪称全面的学术资源。它甚至包含在线门户并提供了完整有效的源代码。
此书讨论了各种数据类型以及如何对其进行排序和分析,着重介绍了可用于搜索、排序和处理的重要算法。为了让读者获得实际操作经验,此书还配有网站,读者可以在网站中找到练习题、测试数据、可视化,以及完整的 Java 代码。此书非常重视教学需求并适用于大学环境,可用作本课题的入门教材资源。
7.《高级数据结构》(英文),作者:Peter Brass
作者:Peter Brass
网站:Amazon
《高级数据结构》强调了数据结构在算法和优化搜索中的重要性。阅读此书需要莫大的勇气,因为它面向高级读者和数据科学从业者,内容深度达到研究生级别,其中深入地探讨了数据分析领域中的复杂数据存储。
此书详细介绍了不同的数据结构和变体,讨论了堆栈、队列、哈希表、搜索树等等。甚至包含更加专业化的结构,例如间隔树。为了支持相关操作,这些章节包含 C 语言工作代码示例和参考。这本教科书讲解了复杂的数据存储问题,因此内容非常详尽和全面。
8.《对它进行自动化:算法如何统治世界》(英文),作者:Christopher Steiner
作者:Christopher Steiner
网站:Chris Steiner | Amazon
与大多数关于算法的书籍不同,这本书并不是参考书或入门手册,它更多的是以历史的眼光审视算法如何在我们的生活中变得越来越重要,最终让很多以前只能手动完成的技术工作实现了自动化。
算法现在正在帮助我们驾驶车辆、增强娱乐媒体,以及预测人类行为。这本书更像是评论和解说,在易于理解的文化背景中介绍抽象难懂的算法。
免责声明:Tableau 并未对本页面列出的任何商品或意见提供正式支持,因此本页面并未加入任何关联链接计划。本文仅供参考,我们提供上述关于商品和出版物的信息仅仅是为了帮助读者自行做出决定。