- ISBN:9787111775102
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:376
- 出版时间:2025-04-01
- 条形码:9787111775102 ; 978-7-111-77510-2
本书特色
本书专门介绍了算法设计的五项主要原则:分而治之、贪心算法、减而治之、动态规划和穷举搜索。这些原则是用Haskell这种纯函数式语言来阐述的,与使用命令式语言相比,解释更简单,程序更短。书中还配有精心挑选的例子(既有新示例,也有标准示例),展示了算法之间的共性和差异。算法开发在适用的情况下使用等式推理,阐明适用性条件和正确性论证。每章*后都附有习题(共近300道),每道习题都有完整的答案,便于读者巩固理解,并将这些技术应用于一系列问题。本书适用于计算机科学与技术及软件工程相关专业学生(包括本科生和研究生)、研究人员、教师和专业人士,可以帮助他们进一步了解如何设计和实现优秀的算法,以及如何用纯函数术语来表达这些算法。
内容简介
本书介绍了算法设计的五个主要原则:分治法、贪婪算法、稀疏、动态程序设计和穷举搜索。让学生、教师、研究人员和专业人员更好地了解一个好的算法是如何组成的,以及如何用纯函数的形式表达这些算法。
前言
译者序
如果真有一门绝世武功,“招式”和“内功”孰轻孰重?如果说这个问题真有答案,那么在我讲授C语言程序设计多年之后,开始与本书相遇相知时似乎逐渐找到了。
长久以来,函数式编程因为侧重原理而被认为更接近于“内功”。由于某些情况下的性能问题以及学习资料的缺乏,函数式编程一直没有成为主导。近年来,计算机硬件性能的提升带来了转机,我们看到旧语言逐渐引入函数式的特性、新语言在构建之初就考虑更多函数式的设计。
在这本书里,当分而治之、贪心算法、减而治之、动态规划、穷举搜索这些算法用Haskell纯函数式语言来实现时,简短的代码体现出了科学思想与工程优雅。外化于形、内化于心的交相辉映令人沉醉!无论对于Haskell程序设计,还是对于C语言程序设计,“招式”和“内功”的兼收并蓄都是一个更高的境界!
本书的作者是牛津大学的Richard Bird和Jeremy Gibbons教授。令人遗憾的是,Richard Bird教授在2022年4月4日离开了我们,他一生致力于推广函数式编程,对算法和程序设计做出了伟大贡献。在翻译这本书的过程中,我深感他文字之魅力和思想之深邃。大家在阅读此书时产生不同编程思维碰撞的电光火石是对Richard*好的缅怀。
目录
前言
**部分基础知识
第1章函数式编程
11基本类型与函数
12处理列表
13归纳与递归的定义
14融合
15累积与串联
章节注释
参考文献
练习第2章时间
21渐近表示法
22估计运行时间
23上下文中的运行时间
24均摊运行时间
章节注释
参考文献
练习第3章实用的数据结构
31对称列表
32随机访问列表
33数组
章节注释
参考文献
练习第二部分分而治之
第4章二分查找
41一维查找
42二维查找
43二叉搜索树
44动态集
章节注释
参考文献
练习第5章排序
51快速排序
52归并排序
53堆排序
54桶排序及基数排序
55排序总和
章节注释
参考文献
练习第6章选择
61*大和*小
62单集合中的选择
63双集合中的选择
64从补集中选择
章节注释
参考文献
练习
第三部分贪心算法
第7章列表的贪心算法
71通用贪心算法
72贪心排序算法
73硬币兑换问题
74TEX中的十进制小数
75不确定性函数和精化
76总结
章节注释
参考文献
练习第8章树的贪心算法
81*小高度树
82哈夫曼编码树
83优先队列
章节注释
参考文献
练习第9章图的贪心算法
91图和生成树
92Kruskal算法
93不相交集和联合查找算法
94Prim算法
95单源*短路径
96Dijkstra算法
97慢跑者问题
章节注释
参考文献
练习
第四部分减而治之
第10章简化算法介绍
101基本理论
102分层网络中的路径
103再论硬币兑换
104背包问题
105一种通用的简化算法
章节注释
参考文献
练习第11章片段和子序列
111*长上升子序列
112*长公共子序列
113和*大子段
章节注释
参考文献
练习第12章划分
121划分的生成方法
122管理两个银行账户
123段落问题
章节注释
参考文献
练习
第五部分动态规划
第13章高效递归
131两个数字的例子
132再论背包问题
133*小代价编辑序列
134再论*长公共子序列
135穿梭巴士问题
章节注释
参考文献
练习第14章*佳划分
141立方时间复杂度的算法
142平方时间复杂度的算法
143复杂度算法示例
144单调性证明
145*佳二叉搜索树
146GarsiaWachs算法
章节注释
参考文献
练习第六部分穷举搜索
第15章搜索方法
151隐式搜索和n皇后问题
152给定和的表达式
153深度优先搜索与广度优先搜索
154登月问题
155预先规划
156高峰时间问题
章节注释
参考文献
练习第16章启发式搜索
161乐观启发式搜索
162单调启发式搜索
163仓库导航
1648数码问题
章节注释
参考文献
练习附录练习答案
作者简介
理查德·伯德(Richard Bird)牛津大学名誉教授,著有多部广受好评的Haskell相关书籍,包括《Haskell函数式程序设计》和《函数式算法设计珠玑》。
杰里米·吉本斯(Jeremy Gibbons)牛津大学计算机科学教授,在该校教授软件工程非全日制专业硕士课程。他是Journal of Functional Programming的联合主编、IFIP Working Group 2.1 on Algorithmic Languages and Calculi的前任主席以及ACM SIGPLAN的前任副主席。
-
2025读书月阅读盲盒——我独钟意命运角落的人
¥42.3¥168.0 -
2025读书月阅读盲盒——经常作案的朋友都知道
¥42.3¥168.0 -
2025读书月阅读盲盒——你以为你以为的就是你以为的吗?
¥42.3¥168.0 -
莫言的奇奇怪怪故事集
¥22.2¥59.9 -
女性生存战争
¥24.4¥66.0 -
生死场
¥8.6¥36.0 -
悉达多
¥14.3¥28.0 -
阅读是一座随身携带的避难所
¥15.8¥39.0 -
1984-插图珍藏版
¥11.3¥29.8 -
东京梦华录
¥19.9¥46.0 -
中国近代史
¥15.5¥39.8 -
林徽因讲建筑
¥11.9¥29.0 -
刀锋
¥14.7¥46.0 -
给青年的十二封信
¥6.3¥15.0 -
她们
¥17.3¥46.8 -
面纱
¥19.4¥49.8 -
我的心曾悲伤七次
¥9.0¥25.0 -
茶,汤和好天气
¥10.1¥28.0 -
我从未如此眷恋人间
¥16.9¥49.8 -
瓦尔登湖
¥12.9¥39.0