商品详情
书名:算法设计与问题求解(第2版)——计算思维培养
定价:56.0
ISBN:9787121295157
作者:李清勇
版次:第1版
出版时间:2020-05
内容提要:
在信息时代,计算思维是解决复杂工程问题的重要思维方式,计算机则是求解问题的重要工具。本书以计算机经典问题求解为导向,通用算法思维和编程能力培养为目标,引入ACM国际大学生程序设计竞赛的有益元素,组织教材的理论教学和编程实践两方面的内容。本书主要内容包括计算机问题求解的经典算法模型和设计范式,包括计算机问题求解中常用的数据结构、枚举算法、递归与分治策略、动态规划、贪心算法和搜索技术。除了强调经典的问题原型和算法原理,本书兼顾编程实践能力,力图使得学生面对复杂问题时既能“想到”还能“做到”。
作者简介:
李清勇,北京交通大学计算机与信息技术学院教授,研究领域为人工智能和大数据,涵盖计算机视觉、模式识别、机器学习和数据挖掘等学科方向,尤其专注于表面缺陷检测、多媒体内容分析与检索、低秩稀疏表示模型和聚类分析等,其研究成果应用于高速铁路和气象观测等行业。获得"北京市高校青年英才计划”人选,北京市教学成果奖一等奖等。
目录:
目 录
第1章 计算机问题求解概述 1
1.1 问题与问题实例 1
1.2 计算机问题求解周期 2
1.3 算法与程序 5
1.4 算法复杂性分析 5
1.4.1 空间复杂性 6
1.4.2 时间复杂性 7
习题1 15
第2章 程序设计语言与数据结构 16
2.1 程序设计语言的“盲点” 16
2.1.1 long不够长 17
2.1.2 double不够准 19
2.1.3 递归不够快 25
2.2 基本数据结构 26
2.2.1 线性表 26
2.2.2 栈和队列 30
2.2.3 树和二叉树 36
2.2.4 优先队列和堆 44
2.2.5 图 45
2.2.6 并查集 47
2.3 标准模板库 49
2.3.1 模板的基本概念 49
2.3.2 标准模板库概述 51
2.3.3 标准模板库应用 52
习题2 63
第3章 枚举算法 69
3.1 枚举的基本思想 69
3.2 模糊数字 70
3.3 真假银币 72
3.4 m钱n鸡 75
3.5 数字配对 77
3.6 绳子切割 79
3.7 石头距离 81
习题3 84
第4章 递归与分治 90
4.1 递归程序 90
4.2 分治法的基本原理 94
4.3 合并排序 96
4.4 逆序对问题 100
4.5 快速排序 102
4.6 *接近点对问题 106
4.7 指数运算 111
4.8 二分查找 113
习题4 114
第5章 动态规划 122
5.1 动态规划的基本思想 122
5.1.1 动态规划的基本要素 124
5.1.2 动态规划的求解步骤 125
5.2 矩阵连乘 126
5.3 *优二叉搜索树 131
5.4 多段图*短路径 136
5.5 *长公共子序列 140
5.6 0-1背包问题 143
5.7 *大上升子序列 146
习题5 149
第6章 贪心算法 155
6.1 贪心算法的基本要素 155
6.2 活动安排问题 157
6.3 小数背包问题 161
6.4 *优前缀码 164
6.5 单源*短路径 169
6.6 *小生成树 174
6.6.1 Prim算法 175
6.6.2 Kruskal算法 178
习题6 182
第7章 搜索技术 187
7.1 问题的状态空间表示 187
7.2 深度优先搜索 189
7.3 广度优先搜索 191
7.4 回溯算法 193
7.4.1 回溯算法的基本原理和框架程序 193
7.4.2 装载问题的回溯算法 199
7.4.3 圆排列问题 203
7.5 分支限界 206
7.5.1 分支限界法的基本原理 206
7.5.2 装载问题的分支限界法 208
7.6 启发式搜索 211
7.6.1 启发式搜索基本原理 211
7.6.2 装载问题的启发式搜索 215
习题7 217
附录A 复杂度分析的数学基础 225
附录B 常用C语言和STL函数 235
附录C 程序设计竞赛和OnlineJudge介绍 241
附录D 教学资源 244
参考文献 245
定价:56.0
ISBN:9787121295157
作者:李清勇
版次:第1版
出版时间:2020-05
内容提要:
在信息时代,计算思维是解决复杂工程问题的重要思维方式,计算机则是求解问题的重要工具。本书以计算机经典问题求解为导向,通用算法思维和编程能力培养为目标,引入ACM国际大学生程序设计竞赛的有益元素,组织教材的理论教学和编程实践两方面的内容。本书主要内容包括计算机问题求解的经典算法模型和设计范式,包括计算机问题求解中常用的数据结构、枚举算法、递归与分治策略、动态规划、贪心算法和搜索技术。除了强调经典的问题原型和算法原理,本书兼顾编程实践能力,力图使得学生面对复杂问题时既能“想到”还能“做到”。
作者简介:
李清勇,北京交通大学计算机与信息技术学院教授,研究领域为人工智能和大数据,涵盖计算机视觉、模式识别、机器学习和数据挖掘等学科方向,尤其专注于表面缺陷检测、多媒体内容分析与检索、低秩稀疏表示模型和聚类分析等,其研究成果应用于高速铁路和气象观测等行业。获得"北京市高校青年英才计划”人选,北京市教学成果奖一等奖等。
目录:
目 录
第1章 计算机问题求解概述 1
1.1 问题与问题实例 1
1.2 计算机问题求解周期 2
1.3 算法与程序 5
1.4 算法复杂性分析 5
1.4.1 空间复杂性 6
1.4.2 时间复杂性 7
习题1 15
第2章 程序设计语言与数据结构 16
2.1 程序设计语言的“盲点” 16
2.1.1 long不够长 17
2.1.2 double不够准 19
2.1.3 递归不够快 25
2.2 基本数据结构 26
2.2.1 线性表 26
2.2.2 栈和队列 30
2.2.3 树和二叉树 36
2.2.4 优先队列和堆 44
2.2.5 图 45
2.2.6 并查集 47
2.3 标准模板库 49
2.3.1 模板的基本概念 49
2.3.2 标准模板库概述 51
2.3.3 标准模板库应用 52
习题2 63
第3章 枚举算法 69
3.1 枚举的基本思想 69
3.2 模糊数字 70
3.3 真假银币 72
3.4 m钱n鸡 75
3.5 数字配对 77
3.6 绳子切割 79
3.7 石头距离 81
习题3 84
第4章 递归与分治 90
4.1 递归程序 90
4.2 分治法的基本原理 94
4.3 合并排序 96
4.4 逆序对问题 100
4.5 快速排序 102
4.6 *接近点对问题 106
4.7 指数运算 111
4.8 二分查找 113
习题4 114
第5章 动态规划 122
5.1 动态规划的基本思想 122
5.1.1 动态规划的基本要素 124
5.1.2 动态规划的求解步骤 125
5.2 矩阵连乘 126
5.3 *优二叉搜索树 131
5.4 多段图*短路径 136
5.5 *长公共子序列 140
5.6 0-1背包问题 143
5.7 *大上升子序列 146
习题5 149
第6章 贪心算法 155
6.1 贪心算法的基本要素 155
6.2 活动安排问题 157
6.3 小数背包问题 161
6.4 *优前缀码 164
6.5 单源*短路径 169
6.6 *小生成树 174
6.6.1 Prim算法 175
6.6.2 Kruskal算法 178
习题6 182
第7章 搜索技术 187
7.1 问题的状态空间表示 187
7.2 深度优先搜索 189
7.3 广度优先搜索 191
7.4 回溯算法 193
7.4.1 回溯算法的基本原理和框架程序 193
7.4.2 装载问题的回溯算法 199
7.4.3 圆排列问题 203
7.5 分支限界 206
7.5.1 分支限界法的基本原理 206
7.5.2 装载问题的分支限界法 208
7.6 启发式搜索 211
7.6.1 启发式搜索基本原理 211
7.6.2 装载问题的启发式搜索 215
习题7 217
附录A 复杂度分析的数学基础 225
附录B 常用C语言和STL函数 235
附录C 程序设计竞赛和OnlineJudge介绍 241
附录D 教学资源 244
参考文献 245
- 电子工业出版社有限公司
- 电子工业出版社有限公司有赞官方供货商,为客户提供一流的知识产品及服务。
- 扫描二维码,访问我们的微信店铺