内容简介
· · · · · ·
《计算机程序设计艺术》系列著作对计算机领域产生了深远的影响。这一系列堪称一项浩大的工程,自1962年开始编写,计划出版7卷,目前已经出版了4卷。《美国科学家》杂志曾将这套书与爱因斯坦的《相对论》等书并列称为20世纪最重要的12本物理学著作。目前Knuth正将毕生精力投入到这部史诗性著作的撰写中。想了解本书最新信息,请访http://www-cs-faculty.stanford.edu/~knuth/taocp.html。
· · · · · ·
作者简介
· · · · · ·
Donald E. Knuth,1938年1月10日出生于美国明尼苏达州的米尔沃基,著名计算机科学家,算法与程序设计技术的先驱,斯坦福大学计算机系荣誉退休教授,计算机排版系统TEX和 METAFONT字体系统的发明人,最年轻的图灵奖得主。他在计算机科学及数学领域出版和发表了多部具有广泛影响的著作和论文。
他获得了很多奖项和荣誉:
1971年获首届美国计算机协会(ACM) Grace Murray Hopper奖
1973年当选为美国科学艺术学院院士
1974年获美国计算机协会图灵奖
1975年当选为美国国家科学院院士,同年荣获美国数学协会(MAA)福特奖(Lester R. Ford Award)
1979年获卡特总统颁发的美国科学奖
1981年当选为美国工程院院士
1982年获计算机先锋奖(Computer
Pioneer Award)
1982年成为IEEE荣誉会员
1986年荣获美国数学学会(AMS)斯蒂尔奖(Steele Award)
1988年获富兰克林奖章(Franklin Medal)
1994年获瑞典科学院Adelskold奖
1995年获IEEE冯·诺依曼奖
1996年获稻盛基金会京都奖(Kyoto Prize)
Knuth的中文名字高德纳广为人知,这是1977年他访问中国之前由姚期智教授的夫人姚储枫所取。
目录
· · · · · ·
Chapter 1 Basic Concepts 1
1.1. Algorithms 1
1.2. Mathematical Preliminaries 10
1.2.1. Mathematical Induction 11
1.2.2. Numbers, Powers, and Logarithms 21
1.2.3. Sums and Products 27
1.2.4. Integer Functions and Elementary Number Theory 39
1.2.5. Permutations and Factorials 45
1.2.6. Binomial Coefficients 52
1.2.7. Harmonic Numbers 75
1.2.8. Fibonacci Numbers 79
1.2.9. Generating Functions 87
1.2.10. Analysis of an Algorithm 96
*1.2.11. Asymptotic Representations 107
*1.2.11.1. The O-notation . 107
* 1.2.11.2. Euler’s summation formula 111
* 1.2.11.3. Some asymptotic calculations 116
1.3. MIX 124
1.3.1. Description of MIX 124
1.3.2. The NIX Assembly Language 144
1.3.3. Applications to Permutations 164
1.4. Some Fundamental Programming Techniques 180
1.4.1. Subroutines 180
1.4.2. Coroutines 193
1.4.3. Interpretive Routines 200
1.4.3.1. A NIX simulator 202
“1.4.3.2. Trace routines 212
1.4.4. Input and Output 215
1.4.5. History and Bibliography 229
Chapter 2 Information Structures 232
2.1. Introduction 232
2.2. Linear Lists 238
2.2.1. Stacks, Queues, and Deques 238
2.2.2. Sequential Allocation 244
2.2.3. Linked Allocation 254
2.2.4. Circular Lists 273
2.2.5. Doubly Linked Lists 280
2.2.6. Arrays and Orthogonal Lists 298
2.3. Trees 308
2.3.1. Traversing Binary Trees 318
2.3.2. Binary Tree Representation of Trees 334
2.3.3. Other Representations of Trees 348
2.3.4. Basic Mathematical Properties of Trees 362
2.3.4.1. Free trees 363
2.3.4.2. Oriented trees 372
*2.3.4.3. The “infinity lemma” 382
*2.3.4.4. Enumeration of trees 386
2.3.4.5. Path length 399
*2.3.4.6. History and bibliography 406
2.3.5. Lists and Garbage Collection 408
2.4. Multilinked Structures 424
2.5. Dynamic Storage Allocation 435
2.6. History and Bibliography 457
Answers to Exercises 466
Appendix A Tables of Numerical Quantities 619
1. Fundamental Constants (decimal) 619
2. Fundamental Constants (octal) 620
3. Harmonic Numbers, Bernoulli Numbers, Fibonacci Numbers 621
Appendix B Index to Notations 623
Index and Glossary 628
· · · · · ·