第1章软件开发 1
3.3菜单 3 1
14.5回溯法 3 1 1
1.1 开发活动 1
目 录 1
致谢 1
前言 1
译者序 1
1.2软件描述 2
1.3 设计 2
第7章逐步改进 g 3
1.4模块化 3
1.5选择编程语言 4
1.6程序开发 5
1.7检测 5
1.8性能分析和测试 9
1.9说明文档 10
1.10维护 11
1.12计算机辅助工具 12
1.13本章小结 12
1.1 1 功能增强 12
7.5.1 问题描述 1 13
7.5装配线顺序 1 13
1.14参考文献和推荐读物 13
第2章问题描述 14
2.1 引言 14
2.2数学问题 14
7.5.3程序计划 1 14
7.5.2设计 1 14
7.5.4程序开发 1 15
2.3编程语言 16
2.3.1句法和语义 17
7.7练习 1 18
7.6参考文献及推荐读物 1 18
2.3.2多义性 18
2.4 电子表格 21
2.5数据库管理 25
2.8练习 27
2.7参考文献和推荐读物 27
2.6本章小结 27
3.1 引言 30
第3章设计 30
3.2功能 30
3.3.1其他考虑 32
3.3.2具有层次结构的菜单 32
3.3.3水平菜单显示方式 35
3.3.4本节小结 35
3.4命令格式 36
3.5小结 37
3.6联机帮助 38
3.6.2详细帮助 38
3.6.1 简略帮助 38
3.7参考文献和推荐读物 39
3.8练习 39
第4章模块化 41
4.1 引言 41
4.3电子表格 44
4.2 文本编辑程序 44
4.4数据库管理 45
4.5程序 47
4.6本章小结 48
4.7参考文献和推荐读物 49
4.8练习 49
9.1 引言 1 52
5.1 程序美 52
第5章编程美学 52
5.2名称选择 56
5.3注释 58
5.4程序布局 61
5.5语句组织 63
5.6控制语句的选择 64
5.6.1控制语句 64
5.6.3使用for语句 66
5.6.2使用while语句 66
5.6.4使用do-while语句 67
5.6.5使用if语句 68
5.6.6使用switch语句 69
5.6.7关于没有goto语句的说明 70
5.7通用性 71
5.8输入/输出格式 71
5.9参考文献和推荐读物 72
5.10练习 72
6.1 引言 74
6.2输入错误 74
第6章防御性编程 74
6.3数值误差 76
9.6练习 1 76
6.3.1表示误差 76
6.3.2算术误差 80
6.3.3与数值误差共处 81
6.4边界错误 84
6.4.1文本编辑器 84
6.4.2插入 87
6.4.3堆栈 88
6.5.1未初始化变量 89
6.5其他原因 89
6.6参考文献和推荐读物 90
6.7练习 90
6.5.2全局和局部变量 90
7.1 引言 93
7.2迷宫中的老鼠 93
7.2.1描述 93
7.2.2设计 94
7.2.3程序计划 95
7.2.4程序开发 96
7.2.5迭代版本 101
7.2.6本节小结 103
7.3.4程序开发 104
7.3.3程序计划 104
7.3.1问题描述 104
7.3排序 104
7.3.2设计 104
7.4栅网 107
7.4.1 问题描述 107
7.4.3编程计划 108
7.4.2设计 108
7.4.4程序开发 108
第8章程序的正确性 122
8.1 引言 122
8.2数学归纳法 123
8.2.1证明方法 123
8.2.2递归程序 127
8.2.3迭代程序 130
8.2.4循环不变量 133
8.3断言变换符方法 134
8.4参考文献和推荐读物 147
8.5练习 147
第9章测试 152
9.2模块测试策略 153
9.2.1大宗测试 153
9.2.2大宗综合测试 154
9.2.3增量测试 157
9.3测试数据的生成 159
9.3.1引言 159
9.3.2黑箱方法 . 159
9.3.3白箱方法 170
9.3.4本节小结 175
9.4调试 176
9.5参考文献和推荐读物 176
第10章性能分析 179
10.1 引言 179
10.2空间复杂性 180
10.3 时间复杂性 185
10.4渐近记号(O、Ω、?、o) 193
10.5实用的复杂性 199
10.6参考文献和推荐读物 200
10.7练习 200
第1 1章性能测试 204
1 1.1 引言 204
1 1.2方法调用的代价 208
11.3递归和迭代 209
11.4边界测试 211
11.5编程效率 212
11.6算法的比较 213
1 1.6.1 引言 213
11.6.2示例:插入排序和冒泡排序 215
1 1.7高速缓存的效果 220
1 1.8生成测试数据 222
11.9练习 224
12.1 引言 226
第12章数据结构 226
12.2.2 线性列表 227
12.2数组表示法 227
12.2.1 引言 227
12.2.3队列 232
12.2.4搜索表 236
12.3链接表示法 239
12.3.1引言 239
12.3.2线性列表 240
12.3.3堆栈 245
12.3.4队列 246
12.3.5双队列 248
12.3.6搜索表 250
12.5练习 253
12.4参考文献和推荐读物 253
第13章高级数据结构 258
13.1二叉树 258
13.1.1引言 258
13.1.2性质 259
13.1.3表示法 260
1 3.1.4二叉树操作 262
13.2堆 265
13.3二叉搜索树 272
13.4图形 277
1 3.4.1 定义 277
1 3.4.2应用 278
13.4.3性质 280
13.4.4表示法 281
13.4.5操作 284
13.5参考文献和推荐读物 289
13.6练习 289
第14章算法设计方法 294
14.1 引言 294
14.2贪婪法 295
14.3分而治之 299
14.4动态编程 308
14.6分支和约束 313
14.7试探法 315
14.7.1引言 315
14.7.2贪婪试探法 315
14.7.3交换法 320
14.7.4性能测定 321
14.7.5 Monte Carlo改进方法 322
14.8参考文献和推荐读物 324
14.9练习 324
附录曲线拟合 328