我喜欢关于面向对象设计的 Head First 系列书。这是对该主题的非常温和而有趣的介绍。我目前正在学习数据结构课程,发现我们使用的文本(Kruse/Ryba 数据结构和 C++ 中的程序设计)非常枯燥且难以理解。这主要是由于我认为我自己在数学领域的局限性。
有谁知道以更轻松的风格编写的数据结构文本,带有幽默感,仍然涵盖所有基础知识,如二叉树、B 树和图形?
我喜欢关于面向对象设计的 Head First 系列书。这是对该主题的非常温和而有趣的介绍。我目前正在学习数据结构课程,发现我们使用的文本(Kruse/Ryba 数据结构和 C++ 中的程序设计)非常枯燥且难以理解。这主要是由于我认为我自己在数学领域的局限性。
有谁知道以更轻松的风格编写的数据结构文本,带有幽默感,仍然涵盖所有基础知识,如二叉树、B 树和图形?
Steve Skiena的《算法设计手册》并不完全是一个笑话,但它对更深层次的数学的理解相对较浅,并且包含许多他所谓的“战争故事”,这些都是来自真实世界情况的说明性示例,算法工作真正得到了回报(或者,有时,完全失败)。他的音频和视频讲座也在网上,而且他的演讲风格很好,还夹杂着一些幽默,所以这可能就是你想要的。
这也不是轻的,但它是相当不错的
在我看来,没有什么比http://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X更具可读性和意义的了
它是 2 本书,第 5 部分是图表,不如另一本书有用 - 当然,除非您想使用图表来解决问题。:)
Dromey 的《如何通过计算机解决问题》虽然不完全是一本算法书,但它采用了重新发现多年来获得许多数据结构和算法的过程的方法。这使我们能够了解代码背后的思想流和一些在起作用的力量。
相关:这本书紧随另一本好书的脚步:G. Polya 的 How to Solve It讲述了伟大的数学家如何解决问题的过程。
我目前正在使用 Larry Nyhoff 的 ADTs , Data Structures, and Problem Solving with C++。
它不像 Head First 系列书那么轻松或令人愉快,但它对二叉树、b 树和图表的细节非常详细。它的代码示例对完成我的作业非常有帮助。理解本书不需要更高的数学知识(当然,除了专门介绍算法分析的章节)。
Harris 和 Ross 的《Beginning Algorithms》(一本 Wrox Press 的书)是我喜欢的一本,尽管它的示例是用 Java 而不是 C++ 呈现的。可能是您在课堂上艰难阅读的文本的一个很好的伴奏。
我听说过关于“算法简介,一种创造性的方法 - Udi Manber”的好消息,但我无法验证它,因为它在本地不可用:(
http://www.amazon.com/Introduction-Algorithms-Creative-Udi-Manber/dp/0201120372