第 一部分 计算机程序设计艺术——MMIX: 新千年的精简指令集计算机 1
致中国读者 2
前言 3
第 1章 基本概念 5
1.3' MMIX 5
1.3.1' MMIX 概述 5
1.3.2' MMIX 汇编语言 26
1.3.3' 排列的应用 46
1.4' 若干基本程序设计技术 47
1.4.1' 子程序.47
1.4.2' 协同程序 58
1.4.3' 解释程序 63
习题答案 81
人名索引 112
索引 113
第二部分 MMIX 增补——对高德纳《计算机程序设计艺术》卷1~3的增补 119
中文版前言 120
序 121
前言 122
风格指南 124
程序设计技术 127
第 1章 基本概念 133
1.3.3 排列的应用 133
1.4.4 输入与输出 139
第 2章 信息结构 145
2.1 引论 145
2.2.2 顺序分配 147
2.2.3 链接分配 147
2.2.4 循环链表 153
2.2.5 双向链表 155
2.2.6 数组与正交表 163
2.3.1 遍历二叉树 164
2.3.2 树的二叉树表示. 166
2.3.3 树的其他表示 170
2.3.5 表和垃圾回收 170
2.5 动态存储分配 171
第3章 随机数 174
3.2.1.1 模的选择 174
3.2.1.3 势 175
3.2.2 其他方法 175
3.4.1 数值分布 177
3.6 小结 177
第4章 算术 178
4.1 按位计数系统 178
4.2.1 单精度计算 178
4.2.2 浮点算术的精度 182
4.2.3 双精度计算 182
4.3.1 经典算法 186
4.4 进制转换 191
4.5.2 最大公因数 193
4.5.3 对欧几里得算法的分析 194
4.5.4 分解素因数 194
4.6.3 幂的计算 195
4.6.4 多项式求值 195
第5章 排序 196
5.2 内部排序 196
5.2.1 插入排序 197
5.2.2 交换排序 202
5.2.3 选择排序 207
5.2.4 合并排序 210
5.2.5 分布排序 213
5.3.1 比较次数最少的排序 215
5.5 小结、历史与文献 215
第6章 查找 217
6.1 顺序查找 217
6.2.1 查找有序表 219
6.2.2 二叉树查找 221
6.2.3 平衡树 222
6.3 数字查找 225
6.4 散列 227
习题答案 235
1.3.2 MMIX 汇编语言 235
1.3.3 排列的应用 238
1.4.4 输入与输出 238
2.1 引论 240
2.2.2 顺序分配 241
2.2.3 链接分配 242
2.2.4 循环链表 245
2.2.5 双向链表 247
2.2.6 数组与正交表 249
2.3.1 遍历二叉树 251
2.3.2 树的二叉树表示 253
2.3.5 表和垃圾回收 256
2.5 动态存储分配 257
3.2.1.1 模的选择 264
3.2.1.3 势 265
3.2.2 其他方法 265
3.4.1 数值分布 266
3.6 小结 266
4.1 按位计数系统 267
4.2.1 单精度计算 267
4.2.2 浮点算术的精度 269
4.2.3 双精度计算 270
4.3.1 经典算法 272
4.4 进制转换 274
4.5.2 最大公因数 276
4.5.3 对欧几里得算法的分析 276
4.6.3 幂的计算 277
4.6.4 多项式求值 277
5 排序 278
5.2 内部排序 278
5.2.1 插入排序 281
5.2.2 交换排序 284
5.2.3 选择排序 289
5.2.4 合并排序 290
5.2.5 分布排序 294
5.3.1 比较次数最少的排序 295
5.5 小结、历史与文献 298
6.1 顺序查找 298
6.2.1 查找有序表 299
6.2.2 二叉树查找 299
6.2.3 平衡树 300
6.3 数字查找 300
6.4 散列 300
致谢 302
人名索引 303
索引 304