求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

新编实用算法分析与程序设计查看源代码讨论查看历史

跳转至: 导航搜索
新编实用算法分析与程序设计

《新编实用算法分析与程序设计》是由王建德编写的一本书籍。讲述了算法的基本概念、各种排序与解题的方法及策略,论述了初等数论、计算几何学、搜索和图论的有关算法,最后讨论了动态规划。本书从教学的角度详细讲解算法理论,从竞赛的角度对经典习题进行详细解析,培养学生灵活运用算法的能力。

基本内容

书 名: 新编实用算法分析与程序设计

作 者:王建德

出版社: 人民邮电出版社

出版时间: 2008

ISBN: 9787115177063

开本: 16

定价: 39.00 元

内容简介

本书是一部程序设计竞赛教程。书中首先讲述了算法的基本概念、各种排序与解题的方法及策略,然后论述了初等数论、计算几何学、搜索和图论的有关算法,最后讨论了动态规划。本书不仅从教学的角度详细讲解算法理论,而且从竞赛的角度对经典习题进行详细解析,培养学生灵活运用算法的能力。本书既可以作为大专院校计算机专业算法类课程的教材,亦可以作为大中学校计算机竞赛活动的培训教材,还可供计算机软硬件研发人员参考。

作者简介

王建德:著名的信息学奥林匹克竞赛金牌教练,国务院特殊津贴专家,中学特级教师。他所辅导的学生在国际奥林匹克信息学竞赛中获7金,2银,2铜的信奉异教成绩。先后出版了22本关于程序设计和算法的学术专著,其中《实用算法的分析与程序设计》广受好评,长期以来是国内各类程序设计竞赛的必备教程。吴永辉:博士,复旦大学计算机科学与工程系副教授,ACM-ICPC中国赛区指导委员会成员,复旦大学ACM程序设计竞赛队教练。自2001年起连续带队进入ACM-ICPC世界总决赛,并取得过世界第6名的佳绩。主要研究方向为数据库,在《计算机研究与发展》,《软件学报》以及重大学术会议上发表多篇论文,参与译著《数据通信与网络》和《数据通信,计算机网络与开放系统》。

目录

第1章 绪论 1

1.1 算法的基本定义 1

1.2 算法的空间复杂度 2

1.2.1 压缩存储技术 2

1.2.2 原地工作 3

1.3 算法的时间复杂度 3

1.3.1 基本运算 4

1.3.2 输入规模 4

1.3.3 输入情况 5

1.3.4 时间复杂度的阶 6

1.4 优化时间效率的方法 8

1.4.1 编程实现算法时注意细节优化 8

1.4.2 寻找解题思路时尽可能考虑最优性 13

1.5 实际生活中常见的算法问题 16

第2章 排序、顺序统计与解题的基本策略 18

2.1 计数排序与贪心策略 19

2.1.1 计数排序 19

2.1.2 贪心策略 22

2.2 “二分”思想与快速排序 30

2.2.1 分类和分治思想 30

2.2.2 快速排序采用二分法 30

2.2.3 快速排序和二分法在顺序统计问题上的应用 32

2.3 堆排序的思想与应用 36

2.3.1 在调整中保持堆性质 37

2.3.2 建堆 37

2.3.3 堆排序 38

2.4 数据有序化 46

2.4.1 预处理阶段的数据有序化 46

2.4.2 实时处理阶段的数据有序化 47

习题 51

第3章 初等数论的有关算法 54

3.1 计算a和b最大公约数的欧几里得公式gcd(a,b) 54

3.2 计算N的最大互质数 55

3.3 欧几里得公式推广:计算最大公约数的线性组合 56

3.4 计算同余方程ax≡b(modn)(n>0) 56

3.5 求解同余式组 61

3.6 解不定方程ax+by=c 68

3.7 初等数论知识的应用 75

3.7.1 运用反复平方法求数的幂模n 75

3.7.2 素数的测试 81

3.7.3 整数的因子分解 82

习题 83

第4章 计算几何学的有关算法 86

4.1 线段的性质 86

4.2 计算两条相交线段的交点 94

4.3 判断任意一组线段中是否存在相交情况 95

4.4 计算线段p1p2的中垂线方程 97

4.5 计算凸多边形的重心位置和面积 101

4.6 寻找最近点对 102

4.7 计算包含平面所有点的二维凸包 105

4.8 将凸包问题由二维拓展至三维 110

4.8.1 计算三维凸包体积的基本思想 110

4.8.2 计算由3个空间点组成的劈面三棱柱的体积V(R(i)) 111

4.8.3 计算包含点集p的三维凸包体积 112

4.9 计算几何类问题的类型和应对的基本方法 114

习题 120

第5章 搜索的有关算法 124

5.1 枚举法 124

5.2 宽度优先搜索 129

5.2.1 宽度优先搜索的定义 129

5.2.2 宽度优先搜索的应用 130

5.3 深度优先搜索与回溯法 134

5.3.1 深度优先搜索 134

5.3.2 回溯法——采用纵深搜索的策略构建与处理隐式图 139

5.4 搜索的剪枝优化 150

5.5 二分搜索 167

5.6 参数搜索 173

习题 183

第6章 图论的有关算法 187

6.1 计算图的传递闭包 187

6.2 最小生成树的算法及其应用 193

6.2.1 计算最小生成树的基本思路 193

6.2.2 计算最小生成树的两种算法 195

6.2.3 最小生成树的应用实例 202

6.3 最短路径的算法及其应用 209

6.3.1 最短路径计算的基本原理 209

6.3.2 计算最短路径的常用算法 212

6.4 二分图的匹配及其应用 223

6.4.1 二分图和匹配的基本概念 224

6.4.2 怎样判别二分图 225

6.4.3 怎样计算二分图的最大匹配 226

6.4.4 二分图的最小覆盖问题 231

6.4.5 二分图的最佳匹配问题 235

6.5 网络流图的思想和应用 246

6.5.1 计算网络流量的基本思想 247

6.5.2 按层次计算最大流的Dinic算法 250

6.5.3 计算网络流量的应用实例 253

6.5.4 网络增加多源多汇和容量下界因素后的流量计算问题 263

6.5.5 网络增加费用因素后的流量计算问题 271

习题 283

第7章 讨论动态规划 286

7.1 动态规划的基本思想 286

7.2 动态规划的计算步骤 286

7.3 动态规划的优化策略 294

习题 324

参考文献 328[1]

……

参考文献