致谢
Robert Sedgewick Kevin Wayne
讲述:Alloy大小:741.70K时长:03:10
本书的编写花了近 40 年时间,因此想要一一列出所有参与人是不可能的。本书的前几版一共列出了好几十人,其中包括(按字母顺序)Andrew Appel、Trina Avery、Marc Brown、Lyn Dupré、Philippe Flajolet、Tom Freeman、Dave Hanson、Janet Incerpi、Mike Schidlowsky、Steve Summit 和 Chris Van Wyk。我要感谢他们所有人,尽管其中有些人的贡献要追溯到几十年前。至于第 4 版,我们要感谢试用了本书样稿的普林斯顿及其他院校的数百名学生,以及通过本书网站发表意见和指出错误的世界各地的读者。
我们还要感谢普林斯顿大学对于高质量教学的坚定支持,这是本书得以面世的基础。
Peter Gordon 几乎从本书写作之初就提出了很多有用的建议,这一版奉行的“归本溯源”的指导思想也是他最早提出的。关于第 4 版,我们要感谢 Barbara Wood 认真又专业的编辑工作,Julie Nahil 对生产过程的管理,以及 Pearson 出版公司中为本书的付梓和营销辛勤工作的朋友。所有人都在积极地追赶进度,而本书的质量并没有受到丝毫影响。
第 1 章 基础
本书的目的是研究多种重要而实用的算法,即适合用计算机实现的解决问题的方法。和算法关系最紧密的是数据结构,即便于算法操作的组织数据的方法。本章介绍的就是学习算法和数据结构所需要的基本工具。
首先要介绍的是我们的基础编程模型。本书中的程序只用到了 Java 语言的一小部分,以及我们自己编写的用于封装输入输出以及统计的一些库。1.1 节总结了相关的语法、语言特性和书中将会用到的库。
接下来我们的重点是数据抽象并定义抽象数据类型(ADT)以进行模块化编程。在 1.2 节中我们介绍了用 Java 实现抽象数据类型的过程,包括定义它的应用程序编程接口(API)然后通过 Java 的类机制来实现它以供各种用例使用。
之后,作为重要而实用的例子,我们将学习三种基础的抽象数据类型:背包、队列和栈。1.3 节用数组、变长数组和链表实现了背包、队列和栈的 API,它们是全书算法实现的起点和样板。
性能是算法研究的一个核心问题。1.4 节描述了分析算法性能的方法。我们的基本做法是科学式的,即先对性能提出假设,建立数学模型,然后用多种实验验证它们,必要时重复这个过程。
我们用一个连通性问题作为例子结束本章,它的解法所用到的算法和数据结构可以实现经典的 union-find 抽象数据结构。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
这篇文章是一本致谢和技术概述的总结。作者在致谢部分感谢了参与书籍编写的众多人员,并特别提到了普林斯顿大学对高质量教学的支持。在技术概述部分,文章介绍了算法和数据结构的基础知识,包括基础编程模型、数据抽象和抽象数据类型的实现,以及背包、队列和栈等基础抽象数据类型的学习。此外,还介绍了分析算法性能的方法和连通性问题的解法。整体而言,这篇文章是一篇感谢致辞和技术概述相结合的内容,既感谢了参与者,又介绍了算法和数据结构的基础知识。
2024-01-04给文章提建议
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《算法(第 4 版)》
《算法(第 4 版)》
立即购买
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论