普通高等教育“十一五”国家级规划教材——高等学校计算机系列

计算机常用算法与程序设计教程

分享 推荐 1 收藏 5 阅读 4.6K
杨克昌 (主编) 978-7-115-17832-9

关于本书的内容有任何问题,请联系 张孟玮

? 本书为普通高等教育"十一五"国家级规划教材。
本书遵循"内容实用,难易适当,面向设计,注重能力培养"的要求,讲述了穷举、回溯、分治、递归、递推、贪心算法与动态规划等计算机常用算法,同时简要介绍了模拟、智能优化与并行处理。
本书注重常用算法的设计与应用,算法设计与程序实现的结合,以及算法的改进与程序优化,力求理论与实际相结合,算法与程序相统一。
书中所介绍的算法通常给出完整的C程序,并在TC(VC++)环境下编译通过,为学习计算机常用算法与程序设计提供了范例。
为便于读者练习,每章都附有习题,同时在附录中给出了习题求解的算法提示。
本书可作为高等院校计算机及相关专业"算法设计与分析"、"计算机常用算法与程序设计"课程的教材,也可供软件设计人员与计算机爱好者学习参考。
¥28.00 ¥23.80 (8.5 折)
立即购买 申请样书
教学资源仅供教师教学使用,转载或另作他用版权方有权追究法律责任。

内容摘要

  本书遵循“内容实用,难易适当,面向设计,注重能力培养”的要求,讲述了穷举、回溯、分治、递归、递推、贪心算法与动态规划等计算机常用算法,同时简要介绍了模拟、智能优化与并行处理。本书注重常用算法的设计与应用,算法设计与程序实现的结合,以及算法的改进与程序优化,力求理论与实际相结合,算法与程序相统一。
  书中所介绍的算法通常给出完整的C程序,并在TC(VC++)环境下编译通过,为学习计算机常用算法与程序设计提供了范例。为便于读者练习,每章都附有习题,同时在附录中给出了习题求解的算法提示。
  本书可作为高等院校计算机及相关专业“算法设计与分析”、“计算机常用算法与程序设计”课程的教材,也可供软件设计人员与计算机爱好者学习参考。

目录

目 录

第 1章 算法与程序设计简介 1
1.1 算法与算法描述 1
1.1.1 算法 1
1.1.2 算法描述 2
1.2 算法复杂性分析 6
1.2.1 时间复杂度 6
1.2.2 空间复杂度 10
1.3 程序设计简介 11
1.3.1 算法与程序 11
1.3.2 结构化程序设计 14
习题 15

第 2章 穷举与回溯 17
2.1 穷举及其应用 17
2.1.1 穷举概述 17
2.1.2 穷举应用 18
2.2 穷举设计的优化 22
2.2.1 优选穷举对象 22
2.2.2 优化穷举循环参量 23
2.2.3 精简穷举循环 27
2.3 回溯法及其描述 30
2.3.1 回溯的基本概念 30
2.3.2 回溯法描述 30
2.3.3 回溯法的效益分析 33
2.4 回溯设计应用 34
2.4.1 桥本分数式 34
2.4.2 排列组合 36
2.4.3 德布鲁金环序列 41
2.4.4 高斯皇后问题及其拓展 45
2.5 回溯设计的优化 51
习题 54

第3章 递归与分治 56
3.1 递归及其应用 56
3.1.1 递归与递归调用 56
3.1.2 递归应用 57
3.2 分治法概述 61
3.2.1 分治法基本思想 61
3.2.2 分治算法设计方法和特点 62
3.2.3 分治法的时间复杂度 64
3.3 分治法的基本应用 65
3.3.1 数据查找与排序 65
3.3.2 计数逆序排名问题 70
3.3.3 投资问题 72
3.4 消除递归 73
3.4.1 一般的递归转非递归 73
3.4.2 分治算法中的递归转化 76
习题 77

第4章 递推 79
4.1 递推概述 79
4.1.1 递推算法 79
4.1.2 递推实施步骤与描述 80
4.2 递推数列 82
4.2.1 裴波那契数列与卢卡斯数列 83
4.2.2 分数数列 85
4.2.3 幂序列 87
4.2.4 双关系递推数列 90
4.3 递推数阵 93
4.3.1 杨辉三角 93
4.3.2 折叠方阵 95
4.4 应用递推求解应用题 97
4.4.1 猴子爬山问题 98
4.4.2 整币兑零问题 100
4.4.3 整数划分问题 102
4.5 递推与递归比较 105
习题 107

第5章 贪心算法 109
5.1 贪心算法概述 109
5.2 贪心算法的理论基础 110
5.3 删数字问题 111
5.4 背包问题 112
5.4.1 0-1背包问题 112
5.4.2 可拆背包问题 113
5.5 覆盖问题 115
5.6 图的着色问题 117
5.7 遍历问题 120
5.8 **小生成树 123
5.9 哈夫曼编码 130
习题 134

第6章 动态规划 135
6.1 一般方法与求解步骤 135
6.1.1 一般方法 135
6.1.2 动态规划求解步骤 136
6.2 装载问题 137
6.3 插入乘号问题 141
6.4 0-1背包问题求解 145
6.4.1 0-1背包问题 146
6.4.2 二维0-1背包问题 151
6.5 **长子序列探索 156
6.5.1 **长非降子序列 156
6.5.2 **长公共子序列 158
6.6 **优路径搜索 161
6.6.1 点数值三角形的**优路径搜索 161
6.6.2 边数值矩形的**优路径搜索 163
6.7 动态规划与其他算法的比较 166
6.7.1 动态规划与递推比较 166
6.7.2 动态规划与贪心算法比较 166
习题 167

第7章 模拟 168
7.1 模拟概述 168
7.2 运算模拟 168
7.2.1 运算模拟描述 168
7.2.2 n个1的整除问题 170
7.2.3 尾数前移问题 172
7.2.4 阶乘与幂的计算 174
7.2.5 求圆周率π 176
7.3 随机模拟 178
7.3.1 进站时间模拟 178
7.3.2 蒙特卡罗模拟计算 179
7.3.3 模拟发扑克牌 181
7.4 操作过程模拟 183
7.4.1 洗牌 183
7.4.2 泊松分酒 185
7.4.3 模拟小孔流水 188
7.5 模拟外索夫游戏 190
习题 194

第8章 智能优化 195
8.1 模拟退火算法 195
8.1.1 物理退火过程和Metropolis准则 195
8.1.2 模拟退火算法概述 196
8.1.3 应用举例 198
8.2 遗传算法 199
8.2.1 生物的进化与遗传 200
8.2.2 遗传算法概述 200
8.2.3 遗传算法关键参数 205
8.2.4 遗传算法应用举例 206
8.3 粒子群优化算法 208
8.3.1 粒子群算法的基本结构 209
8.3.2 粒子群算法的关键参数 209
8.3.3 应用举例 210
8.4 人工神经网络 212
8.4.1 神经网络模型 213
8.4.2 神经网络学习规则 214
习题 215

第9章 并行算法简介 216
9.1 基本概念 216
9.1.1 并行计算机系统结构模型 216
9.1.2 并行计算性能评价 217
9.2 并行算法设计 219
9.2.1 SIMD共享存储模型 220
9.2.2 SIMD互连网络模型 224
9.2.3 MIMD共享存储模型 225
9.2.4 MIMD异步通信模型 229
9.3 并行程序开发 231
9.3.1 并行程序设计概念 232
9.3.2 共享存储系统并行编程 232
9.3.3 分布存储系统并行编程 238
习题 243

附录1 习题解答算法提要 244
附录2 C常用库函数 264

参考文献 267

读者评论

赶紧抢沙发哦!

我要评论

推荐用户

同系列书

  • 计算机常用算法与程序设计教程

    杨克昌

      本书遵循“内容实用,难易适当,面向设计,注重能力培养”的要求,讲述了穷举、回溯、分治、递归、递推、贪心算法...

    ¥28.00
  • 大学计算机基础实践教程

    甘勇 尚展垒 陈慧

      本书是根据教育部非计算机专业计算机基础课程教学指导分委员会提出的《关于进一步加强高校计算机基础教学的意见》...

    ¥19.80
  • 计算机网络

    周炎涛 胡均平

      本书在介绍必要的计算机网络与通信理论知识的基础上,兼顾工程应用技术,对计算机网络规划建设、管理服务和安全作...

    ¥29.80
  • 计算机操作系统

    刘循 朱敏 文艺

      操作系统是现代计算机系统中必不可少的重要系统软件,也是计算机专业的必修课程。本书深入浅出地对操作系统的基本...

    ¥34.00
  • 数据结构(C++版)

    杨秀金

      本书根据教育部高等学校计算机科学与技术教学指导委员会关于“数据结构”课程的指导性大纲进行编写。书中系统地介...

    ¥32.00

相关图书

人邮微信
本地服务
教师服务
教师服务
读者服务
读者服务
返回顶部
返回顶部