新書推薦:
《
汉末晋初之际政治研究
》
售價:HK$
135.7
《
强者破局:资治通鉴成事之道
》
售價:HK$
82.8
《
鸣沙丛书·鼎革:南北议和与清帝退位
》
售價:HK$
121.0
《
从康德到黑格尔的发展:兼论宗教哲学(英国观念论名著译丛)
》
售價:HK$
62.1
《
突破不可能:用特工思维提升领导力
》
售價:HK$
79.4
《
王阳明大传:知行合一的心学智慧(精装典藏版)
》
售價:HK$
227.7
《
失衡与重塑——百年变局下的中国与世界经济
》
售價:HK$
135.7
《
不被定义的年龄:积极年龄观让我们更快乐、健康、长寿
》
售價:HK$
79.4
編輯推薦:
本书突出以下4个注重。 (1) 注重常用算法的选取与组织。 (2) 注重典型案例的精选与提炼。 (3) 注重算法设计与程序实现的紧密结合。 (4) 注重算法改进与程序优化。
內容簡介:
本书遵循“精选案例,深入浅出,面向设计,注重能力培养”的要求,系统讲述枚举、递推、递归、回溯法、动态规划、贪心算法、分支限界法与模拟等常用算法及其应用。精选各算法设计求解的典型案例,从案例提出到算法设计、从程序实现到复杂度分析,环环相扣,融为一体,力求算法理论与实践应用相结合、算法与程序相统一,突出算法在程序设计中的核心地位与引导作用。 书中所有案例给出算法设计要点与完整的C程序代码,并给出程序运行示例(均在Visual C++ 6.0编译通过)与算法分析。为方便教学,每章都附有习题,同时推出与本书配套的课件供教学选用。书中所有源代码、部分习题解答提示与配套课件均可从人邮教育社区(http:www.ryjiaoyu.com)下载。 本书可作为高等院校计算机相关专业“算法设计与分析”和“程序设计基础与应用”等课程的教材,也可供软件设计人员和程序设计爱好者学习参考。
關於作者:
杨克昌:湖南理工学院计算机学院教授,长年从事教学改革并取得校级与省级教学成果奖多项,对本科有关算法与程序设计的教学目标、教学要求与学生的实际非常熟悉,教学经验丰富。编写过教材:C语言程序设计、计算机程序设计经典题解、趣味C程序设计集锦、趣味Visual FoxPro程序设计集锦、至美—C程序设计、计算机常用算法与程序设计教程。
目錄 :
第1章算法与程序设计概述1
1.1 算法概念与描述 1
1.1.1 算法概念 1
1.1.2 算法描述 3
1.2 算法复杂性分析 6
1.2.1 时间复杂度 7
1.2.2 空间复杂度 12
1.3 算法设计与分析示例 12
1.3.1 最大公约数 12
1.3.2 同码小数和 13
1.3.3 平方根不等式 15
1.4 算法与程序设计 16
1.4.1 算法与程序 16
1.4.2 结构化程序设计 20
习题1 22
第2章 枚举 24
2.1 枚举概述 24
2.2 求和与统计 26
2.2.1 求代数和 26
2.2.2 倍和数探索 26
2.3 整数搜索 31
2.3.1 探求p-完全数 31
2.3.2 搜索合数世纪 32
2.4 解方程与不等式 33
2.4.1 解佩尔方程 33
2.4.2 解分式不等式 35
2.5 分解与重组 35
2.5.1 质因数分解 36
2.5.2 探索双和3元2组 38
2.6 运算数式构建 39
2.6.1 探索完美综合运算式 39
2.6.2 构建对称数式 42
2.7 数阵与图形 46
2.7.1 探求3阶素数幻方 46
2.7.2 构建和积三角形 49
2.8 枚举设计优化 51
2.8.1 优化枚举结构 51
2.8.2 精简枚举参数 52
习题2 54
第3章 递推 56
3.1 递推概述 56
3.2 超级素数搜索 58
3.3 裴波那契序列与卢卡斯序列 62
3.4 多关系递推 63
3.4.1 双幂序列 63
3.4.2 双关系递推数列 65
3.4.3 威佐夫数对序列 67
3.5 数阵与网格 68
3.5.1 构建杨辉三角 68
3.5.2 方格网交通线路 70
3.6 水手分椰子 71
3.6.1 5个水手分椰子 72
3.6.2 探求n个水手分椰子 75
3.7 整币兑零 76
3.7.1 特定零币兑零 76
3.7.2 一般零币兑零 78
3.8 递推小结 80
习题3 81
第4章 递归 83
4.1 递归概述 83
4.2 购票排队 86
4.3 汉诺塔游戏 87
4.3.1 计算移动次数 88
4.3.2 展示移动过程 89
4.4 双转向旋转方阵 90
4.5 分区交换排序与选择 93
4.5.1 分区交换排序 93
4.5.2 分区交换选择 96
4.6 排列组合实现 97
4.6.1 实现排列An,m 98
4.6.2 实现组合Cn,m 99
4.7 整数拆分 102
4.7.1 零数取自指定区间 102
4.7.2 零数取自指定整数集 104
4.8 递归小结 105
习题4 108
第5章 回溯法 110
5.1 回溯法概述 110
5.1.1 回溯概念 110
5.1.2 回溯描述 111
5.2 桥本分数式 114
5.2.1 9数字桥本分数式 115
5.2.2 探求10数字分数式 119
5.3 素数和环 120
5.4 直尺与数珠 124
5.4.1 神奇古尺 124
5.4.2 数码串珠 126
5.5 错位排列探索 128
5.5.1 伯努利装错信封问题 128
5.5.2 特殊错位排列 130
5.6 情侣拍照排列 132
5.6.1 逐位回溯 132
5.6.2 成对回溯 134
5.7 回溯法小结 136
习题5 138
第6章 动态规划 139
6.1 动态规划概述 139
6.1.1 动态规划概念 139
6.1.2 动态规划设计规范 141
6.2 0-1背包问题 141
6.3 最小子段和 145
6.3.1 序列最小子段 145
6.3.2 环序列最小子段 147
6.4 最优插入乘号 151
6.5 最长子序列探索 153
6.5.1 最长非降子序列 153
6.5.2 最长公共子序列 156
6.6 凸形的三角形划分 158
6.7 动态规划小结 161
习题6 161
第7章 贪心算法 163
7.1 贪心算法概述 163
7.2 删数字最值问题 164
7.3 可拆背包问题 167
7.4 构建埃及分数式 168
7.4.1 优先选择最小分母 169
7.4.2 扩展分母选择范围 170
7.5 数列压缩问题 172
7.5.1 数列压缩的最大值 172
7.5.2 数列压缩的极差 174
7.6 哈夫曼树与编码 176
7.6.1 构建哈夫曼树 176
7.6.2 实现哈夫曼编码 179
7.7 贪心算法小结 182
习题7 183
第8章 分支限界法 185
8.1 分支限界法概述 185
8.2 搜索迷宫最短通道 187
8.2.1 矩阵迷宫 187
8.2.2 三角迷宫 191
8.3 装载问题 194
8.3.1 回溯设计 194
8.3.2 分支限界设计 196
8.4 0-1背包问题 198
8.5 8数码游戏 201
8.5.1 移动常规设计 201
8.5.2 数组优化设计 206
8.6 分支限界法小结 209
习题8 210
第9章 模拟 211
9.1 模拟概述 211
9.1.1 模拟概念 211
9.1.2 竖式乘除模拟 214
9.2 探求乘数 216
9.2.1 积为“1”构成 216
9.2.2 积为指定数构成 217
9.3 尾数前移问题 218
9.3.1 尾数限一个数字 218
9.3.2 尾数为多位数 220
9.4 阶乘幂与排列组合计算 222
9.5 圆周率高精度计算 223
9.6 模拟发扑克牌 226
9.7 泊松分酒问题 228
9.8 模拟小结 231
习题9 232
第10章 算法综合应用与优化 233
10.1 幂积序列 233
10.1.1 双幂积探索 233
10.1.2 探讨3幂积序列 237
10.2 指定码串积 240
10.2.1 探求0-1串积 240
10.2.2 指定2码串积 243
10.2.3 指定多码串积 245
10.3 皇后问题 247
10.3.1 高斯8后问题 247
10.3.2 探索n皇后问题 249
10.3.3 皇后全控棋盘 252
10.4 马步遍历与哈密顿圈 255
10.4.1 马步遍历探索 255
10.4.2 最长马步路径 258
10.4.3 马步型哈密顿圈 262
10.5 综合应用小结 266
习题10 267
附录A 在Visual C++6.0环境下运行C程序方法简介 268
附录B C语言常用库函数 272
参考文献 276