第一部分 基础
第1章 开 篇
1.1 一次友好的对话
1.2 准确的问题描述
1.3 程序设计
1.4 实现概要
1.5 原理
1.6 习题
1.7 深入阅读
第2章 啊哈!算法
2.1 三个问题
2.2 处不在的二分搜索
2.3 基本操作的威力
2.4 排序
2.5 原理
2.6 习题
2.7 深入阅读
2.8 变位词程序的实现(边栏)
第3章 数据决定程序结构
3.1 一个调查程序
3.2 格式信函编程
3.3 一组示例
3.4 结构化数据
3.5 用于特殊数据的强大工具
3.6 原理
3.7 习题
3.8 深入阅读
第4章 编写正确的程序
4.1 二分搜索的挑战
4.2 编写程序
4.3 理解程序
4.4 原理
4.5 程序验证的角色
4.6 习题
4.7 深入阅读
第5章 编程小事
5.1 从伪代码到C程序
5.2 测试工具
5.3 断言的艺术
5.4 自动测试
5.5 计时
5.6 完整的程序
5.7 原理
5.8 习题
5.9 深入阅读
5.10 调试(边栏)
第二部分 性能
第6章 程序性能分析
6.1 实例研究
6.2 设计层面
6.3 原理
6.4 习题
6.5 深入阅读
第7章 粗略估算
7.1 基本技巧
7.2 性能估计
7.3 安全系数
7.4 Little定律
7.5 原理
7.6 习题
7.7 深入阅读
7.8 日常生活中的速算(边栏)
第8章 算法设计技术
8.1 问题及简单算法
8.2 两个平方算法
8.3 分治算法
8.4 扫描算法
8.5 实际运行时间
8.6 原理
8.7 习题
8.8 深入阅读
第9章 代码调优
9.1 典型的故事
9.2 急救方案集锦
9.3 大手术--二分搜索
9.4 原理
9.5 习题
9.6 深入阅读
第10章 节省空间
10.1 关键在于简单
10.2 示例问题
10.3 数据空间技术
10.4 代码空间技术
10.5 原理
10.6 习题
10.7 深入阅读
10.8 巨大的节省(边栏)
第三部分 应用
第11章 排 序
11.1 插入排序
11.2 一种简单的快速排序
11.3 更好的几种快速排序
11.4 原理
11.5 习题
11.6 深入阅读
第12章 取样问题
12.1 问题
12.2 一种解决方案
12.3 设计空间
12.4 原理
12.5 习题
12.6 深入阅读
第13章 搜 索
13.1 接口
13.2 线性结构
13.3 二分搜索树
13.4 用于整数的结构
13.5 原理
13.6 习题
13.7 深入阅读
13.8 一个实际搜索问题(边栏)
第14章 堆
14.1 数据结构
14.2 两个关键函数
14.3 优先级队列
14.4 一种排序算法
14.5 原理
14.6 习题
14.7 深入阅读
第15章 字符串
15.1 单词
15.2 短语
15.3 生成文本
15.4 原理
15.5 习题
15.6 深入阅读
第1版跋
第2版跋
附录A 算法分类
附录B 估算测试
附录C 时空开销模型
附录D 代码调优法则
附录E 用于搜索的C++类
部分习题提示
部分习题答案
索引
——SteveMcConnell,软件工程大师,IEEESoftware前主编,《代码大全》作者