×
暂无评论
图文详情
  • 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章函数式编程
11基本类型与函数
12处理列表
13归纳与递归的定义
14融合
15累积与串联
章节注释
参考文献
练习第2章时间
21渐近表示法
22估计运行时间
23上下文中的运行时间
24均摊运行时间
章节注释
参考文献
练习第3章实用的数据结构
31对称列表
32随机访问列表
33数组
章节注释
参考文献
练习第二部分分而治之
第4章二分查找
41一维查找
42二维查找
43二叉搜索树
44动态集
章节注释
参考文献
练习第5章排序
51快速排序
52归并排序
53堆排序
54桶排序及基数排序
55排序总和
章节注释
参考文献
练习第6章选择
61*大和*小
62单集合中的选择
63双集合中的选择
64从补集中选择
章节注释
参考文献
练习
第三部分贪心算法
第7章列表的贪心算法
71通用贪心算法
72贪心排序算法
73硬币兑换问题
74TEX中的十进制小数
75不确定性函数和精化
76总结
章节注释
参考文献
练习第8章树的贪心算法
81*小高度树
82哈夫曼编码树
83优先队列
章节注释
参考文献
练习第9章图的贪心算法
91图和生成树
92Kruskal算法
93不相交集和联合查找算法
94Prim算法
95单源*短路径
96Dijkstra算法
97慢跑者问题
章节注释
参考文献
练习
第四部分减而治之
第10章简化算法介绍
101基本理论
102分层网络中的路径
103再论硬币兑换
104背包问题
105一种通用的简化算法
章节注释
参考文献
练习第11章片段和子序列
111*长上升子序列
112*长公共子序列
113和*大子段
章节注释
参考文献
练习第12章划分
121划分的生成方法
122管理两个银行账户
123段落问题
章节注释
参考文献
练习
第五部分动态规划
第13章高效递归
131两个数字的例子
132再论背包问题
133*小代价编辑序列
134再论*长公共子序列
135穿梭巴士问题
章节注释
参考文献
练习第14章*佳划分
141立方时间复杂度的算法
142平方时间复杂度的算法
143复杂度算法示例
144单调性证明
145*佳二叉搜索树
146GarsiaWachs算法
章节注释
参考文献
练习第六部分穷举搜索
第15章搜索方法
151隐式搜索和n皇后问题
152给定和的表达式
153深度优先搜索与广度优先搜索
154登月问题
155预先规划
156高峰时间问题
章节注释
参考文献
练习第16章启发式搜索
161乐观启发式搜索
162单调启发式搜索
163仓库导航
1648数码问题
章节注释
参考文献
练习附录练习答案
展开全部

作者简介

理查德·伯德(Richard Bird)牛津大学名誉教授,著有多部广受好评的Haskell相关书籍,包括《Haskell函数式程序设计》和《函数式算法设计珠玑》。
杰里米·吉本斯(Jeremy Gibbons)牛津大学计算机科学教授,在该校教授软件工程非全日制专业硕士课程。他是Journal of Functional Programming的联合主编、IFIP Working Group 2.1 on Algorithmic Languages and Calculi的前任主席以及ACM SIGPLAN的前任副主席。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航