Donald E. Knuth(高德纳)计算机科学家,算法与程序设计技术的先驱者、斯坦福大学计算机系荣休教授、计算机排版系统TEX和METAFONT字体系统的发明人,因诸多成就以及大量富于创造力和具有深远影响的作品(19部书,160篇论文)而誉满全球。近些年,他将精力全部投入到《计算机程序设计艺术》七卷集的史诗般创作中。Knuth教授获得过许多奖项和荣誉,包括美国计算机协会图灵奖、美国国家科学奖章、美国数学学会的斯蒂尔奖,以及因发明先进技术于1996年荣获的京都奖。1996年,设立了以其名字命名的Donald E. Knuth奖,授予那些为计算机科学基础做出杰出贡献的人。
目錄:
目录第 1章 基本概念 11.1算法 11.2数学准备 101.2.1数学归纳法 111.2.2数、幂和对数 211.2.3和与积 271.2.4整数函数与初等数论 391.2.5排列与阶乘 451.2.6二项式系数 521.2.7调和数 751.2.8斐波那契数 791.2.9生成函数 871.2.10典型算法分析 96*1.2.11渐近表示 107*1.2.11.1大O记号 107*1.2.11.2欧拉求和公式 111*1.2.11.3若干渐近计算式 1161.3 MIX 1241.3.1 MIX的描述 1241.3.2 MIX汇编语言 1441.3.3排列的应用 1641.4若干基本程序设计技术 1861.4.1子程序 1861.4.2协同程序 1931.4.3解释程序 2001.4.3.1 MIX模拟程序 202*1.4.3.2追踪程序 2121.4.4输入与输出 2151.4.5历史和参考文献 229第 2章 信息结构 2322.1引论 2322.2线性表 2382.2.1栈、队列和双端队列 2382.2.2顺序分配 2442.2.3链接分配 2542.2.4循环链表 2732.2.5双向链表 2802.2.6数组与正交表 2982.3树 2082.3.1遍历二叉树 3182.3.2树的二叉树表示 3342.3.3树的其他表示 3482.3.4树的基本数学性质 3622.3.4.1自由树 3632.3.4.2定向树 372*2.3.4.3无限性引理 382*2.3.4.4树的枚举 3862.3.4.5路径长度 399*2.3.4.6历史和参考文献 4062.3.5表和垃圾回收 4082.4多链结构 4242.5动态存储分配 4352.6历史和参考文献 457习题答案 466附录A数值表 619附录B记号索引 623附录C算法和定理索引 628CONTENTSChapter 1 Basic Concepts 11.1 Algorithms 11.2 Mathematical Preliminaries 101.2.1 Mathematical Induction 111.2.2 Numbers, Powers, and Logarithms 211.2.3 Sums and Products 271.2.4 Integer Functions and Elementary Number Theory 391.2.5 Permutations and Factorials 451.2.6 Binomial Coefficients 521.2.7 Harmonic Numbers 751.2.8 Fibonacci Numbers 791.2.9 Generating Functions 871.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 Eulers summation formula 111*1.2.11.3 Some asymptotic calculations 1161.3 MIX 1241.3.1 Description of MIX 1241.3.2 The NIX Assembly Language 1441.3.3 Applications to Permutations 1641.4 Some Fundamental Programming Techniques 1801.4.1 Subroutines 1801.4.2 Coroutines 1931.4.3 Interpretive Routines 2001.4.3.1 A NIX simulator 202*1.4.3.2 Trace routines 2121.4.4 Input and Output 2151.4.5 History and Bibliography 229Chapter 2 Information Structures 2322.1 Introduction 2322.2 Linear Lists 2382.2.1 Stacks, Queues, and Deques 2382.2.2 Sequential Allocation 2442.2.3 Linked Allocation 2542.2.4 Circular Lists 2732.2.5 Doubly Linked Lists 2802.2.6 Arrays and Orthogonal Lists 2982.3 Trees 3082.3.1 Traversing Binary Trees 3182.3.2 Binary Tree Representation of Trees 3342.3.3 Other Representations of Trees 3482.3.4 Basic Mathematical Properties of Trees 3622.3.4.1 Free trees 3632.3.4.2 Oriented trees 372*2.3.4.3 The ”infinity lemma” 382*2.3.4.4 Enumeration of trees 3862.3.4.5 Path length 399*2.3.4.6 History and bibliography 4062.3.5 Lists and Garbage Collection 4082.4 Multilinked Structures 4242.5 Dynamic Storage Allocation 4352.6 History and Bibliography 457Answers to Exercises 466Appendix A Tables of Numerical Quantities 6191. Fundamental Constants (decimal) 6192. Fundamental Constants (octal) 6203. Harmonic Numbers, Bernoulli Numbers, Fibonacci Numbers 621Appendix B Index to Notations 623Index and Glossary 628