标题：编程算法新手自学手册
基本信息
  编程算法新手自学手册作者：管西京(作者), 等(作者)
出版社:机械工业出版社; 第1版 (2012年2月1日) 
丛书名: 新手学编程ABC丛书 
平装:445页 
正文语种:简体中文 
开本:16 
ISBN:9787111367239 
条形码:9787111367239 
商品尺寸: 25.8 x 18.4 x 2.4 cm 
商品重量: 680 g
内容简介
《编程算法新手自学手册》主要内容简介：算法是指在有限步骤内求解某一问题所使用的一组定义明确的规则。程序员都会看重数据结构和算法的作用，水平越高，就越能理解算法的重要性。算法不仅是运算工具，更是程序的灵魂。《编程算法新手自学手册》循序渐进、由浅入深地详细讲解了基于C语言算法的核心技术，并通过具体实例的实现过程演练了各个知识点的具体使用流程。全书共11章，分为4篇。1～2章是基础篇，介绍算法开发所必需具备的基本知识，逐一讲解了9种算法思想的知识；3～5章是核心技术篇，逐一讲解了线性结构、树层次关系结构、网状关系结构等基本知识；6～8章是提高篇，逐一讲解了查找算法、内部排序算法、外部排序和文件等知识；9～11章是典型实战篇，分别详细讲解算法在数据结构和经典数学问题中的解法，通过多个典型实例的实现过程，详细讲解算法在常见领域中的综合应用流程，并穿插介绍了项目的实现技巧。全书采用故事性与趣味性相结合的对话讲解方式，并穿插了学习技巧和职场生存法则，引领读者全面掌握算法。
《编程算法新手自学手册》不但适用于算法的初学者，也适用于有一定C语言基础的读者。 
目录
前言
第1章 算法-程序的灵魂 1
1.1 了解算法 2
1.1.1 算法的特征和发展由来 2
1.1.2 为什么是程序的灵魂 2
1.1.3 何谓算法 3
1.1.4 算法的特性 4
1.2 算法的表示方法____流程图 4
1.3 算法的另一种表示方法____N-S流程图表示法 6
1.4 用计算机语言表示算法 6
1.5 算法在编程中的应用 6
1.6 总结 8
职场点拨____职场的"算法" 8
第2章 9种算法思想 10
2.1 枚举算法思想 11
2.1.1 枚举算法的特点 11
2.1.2 算法思路 11
2.1.3 应用实例 11
2.1.4 总结 14
2.2 递推算法思想 15
2.2.1 递推算法的思路 15
2.2.2 顺推法实例 15
2.2.3 逆推法实例 16
2.3 递归算法思想 17
2.3.1 递归算法的特点 18
2.3.2 递归算法实例 18
2.4 分治算法思想 22
2.4.1 分治算法的思路 22
2.4.2 看一个经典问题-找出假币 23
2.4.3 应用实例____大数相乘 23
2.4.4 应用实例____世界杯比赛日程安排 27
2.5 贪心算法思想 29
2.5.1 贪心算法的思路 29
2.5.2 应用实例____装箱问题 30
2.5.3 应用实例____找零方案 33
2.6 试探法算法思想 34
2.6.1 试探法算法的思路 35
2.6.2 应用实例____八皇后问题 35
2.6.3 应用实例____彩票组合 37
2.7 动态规划算法 38
2.7.1 动态规划算法的思路 39
2.7.2 应用实例 39
2.8 迭代算法思想 41
2.8.1 迭代算法的思路 42
2.8.2 应用实例 42
2.9 模拟算法思想 43
2.9.1 模拟算法的思路 43
2.9.2 应用实例-猜数游戏 44
2.9.3 应用实例-掷骰子游戏 45
2.10 最后做一个评价 46
2.10.1 算法优劣标准 46
2.10.2 算法效率的衡量方法 47
职场点拨____程序员面试面面观 48
第3章 最简单的线性结构 50
3.1 线性表 50
3.1.1 线性表的特性 51
3.1.2 顺序表的基本操作实现 52
3.1.3 链表基本操作实现 59
3.2 先进先出的结构____队列 65
3.2.1 队列简介 65
3.2.2 队列的抽象数据类型定义 66
3.2.3 链队列和循环队列 67
3.2.4 队列的基本操作 67
3.2.5 队列的链式存储 68
3.2.6 应用实例____电信排号程序 73
3.3 后进先出的结构____栈 75
3.3.1 什么是栈 75
3.3.2 栈的基本操作 76
3.3.3 应用实例 79
职场点拨____同事相处之道 82
第4章 层次关系结构____树 84
4.1 基本概念 84
4.1.1 树的定义 85
4.1.2 树的相关术语 85
4.1.3 树的基本操作概况 86
4.2 二叉树 87
4.2.1 二叉树的定义 87
4.2.2 二叉树的性质 88
4.3 二叉树的存储 88
4.3.1 顺序存储结构 88
4.3.2 链式存储结构 90
4.3.3 二叉树操作 91
4.3.4 二叉树遍历 94
4.3.5 使用二叉树 98
4.4 线索二叉树 101
4.4.1 线索二叉树的表示 101
4.4.2 线索二叉树的操作 104
4.5 最优二叉树____赫夫曼树 109
4.5.1 几个相关概念 109
4.5.2 构造赫夫曼树的过程 110
4.5.3 赫夫曼编码 111
职场点拨____谈职业素养 117
第5章 网状关系结构-图 118
5.1 图的定义 118
5.2 图的几个概念 119
5.3 图的存储结构 123
5.3.1 邻接矩阵 123
5.3.2 邻接表 124
5.3.3 十字链表 127
5.3.4 创建图 128
5.4 图的遍历 133
5.4.1 深度优先搜索 133
5.4.2 广度优先搜索 136
5.4.3 遍历算法的常见应用 140
5.4.4 测试图遍历实例 142
5.5 图的连通性问题 143
5.5.1 无向图的连通分量 143
5.5.2 最小生成树 143
5.5.3 关键路径 147
5.6 最短路径 152
5.6.1 求某一顶点到其他各顶点的最短路径 152
5.6.2 求任意一对顶点间的最短路径 156
职场点拨____和领导相处 158
第6章 常用算法____查找 160
6.1 查找的基本概念 160
6.2 基于线性表的查找法 161
6.2.1 顺序查找法 161
6.2.2 折半查找法 165
6.2.3 分块查找法 167
6.3 基于树的查找法 168
6.3.1 二叉排序树 168
6.3.2 平衡二叉排序树 180
6.4 计算式查找法____散列法 186
6.4.1 散列函数的构造方法 187
6.4.2 处理冲突的方法 188
6.4.3 散列表的查找过程 190
6.4.4 散列法性能分析 191
6.5 索引查找 195
6.5.1 索引查找基础 195
6.5.2 索引查找算法的应用 195
职场点拨____寻兼职 199
第7章 常用算法-内部排序 200
7.1 排序基础 200
7.2 插入类排序 202
7.2.1 直接插入排序 202
7.2.2 折半插入排序 205
7.2.3 表插入排序 206
7.2.4 希尔排序 206
7.3 交换类排序法 209
7.3.1 冒泡排序（相邻比序法） 209
7.3.2 快速排序 213
7.4 选择类排序法 217
7.4.1 直接选择排序（Straight Selection Sort） 217
7.4.2 树形选择排序 219
7.4.3 堆排序 220
7.5 归并排序 225
7.5.1 归并排序思想 225
7.5.2 二路归并算法 226
7.5.3 归并排序的实现方法 228
7.6 各种排序方法的综合比较 231
职场点拨____兼职可靠吗？ 232
第8章 外部排序和文件 234
8.1 外存信息的特性 235
8.1.1 磁带存储器 235
8.1.2 磁盘存储器 236
8.2 外排序的基本方法 237
8.2.1 磁盘排序 237
8.2.2 磁带排序 241
8.3 文件的基本概念 243
8.3.1 文件中的常用基本概念 244
8.3.2 文件的有关操作 244
8.4 文件的组织方式 245
8.4.1 顺序文件 245
8.4.2 索引文件 245
8.4.3 ISAM文件 246
8.4.4 VSAM文件 248
8.4.5 散列文件 249
8.4.6 多关键字文件 250
职场点拨____换工作的注意事项 250
第9章 算法在数学领域中的应用 252
9.1 求两个数的最大公约数和最小公倍数 252
9.2 哥德巴赫猜想的近似证明 254
9.3 三色球问题 257
9.4 百钱买百鸡问题 258
9.5 完全数 260
9.6 亲密数 262
9.7 水仙花数 264
9.8 自守数 264
9.9 素数 266
9.9.1 求素数 266
9.9.2 回文素数 268
9.9.3 平方回文数 269
9.10 阶乘 270
9.10.1 递归计算阶乘 270
9.10.2 大数的阶乘 272
9.11 新郎和新娘的问题 281
9.12 年龄几何 283
9.13 三色球问题 284
9.14 马克思手稿中的数学题 285
9.15 正整数分解质因数 286
9.16 方程求解 287
9.16.1 求解线性方程组介绍 287
9.16.2 求解非线性方程组介绍 288
9.16.3 高斯消元法求解线性方程组 288
9.16.4 二分法解非线性方程 293
9.16.5 牛顿迭代法解非线性方程 295
9.17 矩阵运算 297
9.18 孪生素数 301
9.18.1 孪生素数介绍 301
9.18.2 求解孪生素数 302
9.19 一元多项式运算 303
9.19.1 编程实现一元多项式的加法运算 303
9.19.2 编程实现一元多项式的减法运算 308
职场点拨____谈学习方法 318
第10章 数据结构问题 319
10.1 约瑟夫环 320
10.2 大整数运算 323
10.2.1 用数组实现大整数运算 323
10.2.2 用链表实现大整数运算 333
10.3 计算机进制转换 339
10.4 中序表达式转换为后序表达式 344
职场点拨____团队成员的素质 349
第11章 算法的经典问题 350
11.1 存钱利息最大化 351
11.2 歌星大奖赛 354
11.3 借书方案知多少 355
11.4 打鱼还是晒网 356
11.5 捕鱼和分鱼 357
11.6 出售金鱼 358
11.7 平分七筐鱼 359
11.8 绳子的长度和井深 361
11.9 鸡兔同笼 362
11.10 汉诺塔 363
11.10.1 递归法 364
11.10.2 非递归法 365
11.11 背包问题 368
11.11.1 动态规划法 368
11.11.2 递归法 375
11.12 马踏棋盘 378
11.12.1 循环查找 378
11.12.2 递归法实现 382
11.12.3 栈实现 384
11.13 八皇后问题 388
11.13.1 递归法 389
11.13.2 循环法 391
11.14 农夫过河 394
11.15 青蛙过河 397
11.16 三色旗 401
11.17 取石子 403
11.18 生命游戏 407
11.19 黑白棋问题 412
11.20 停车场管理 422
11.21 约瑟夫生者死者游戏 432
11.22 骑士迷宫问题 435
职场点拨____谈升职 444