计算机程序设计艺术

《计算机程序设计艺术》（英語：The Art of Computer Programming），簡稱TAOCP，是美國電腦科學家高德纳（Donald Ervin Knuth）编著的关于计算机程序设计之七卷本著作。作者並因此获得美国计算机协会1974年图灵奖。 1962年，高德纳還是個研究生的時候就開始了程式設計的工作，在攻讀博士期間，艾迪生韋斯利公司（Addison-Wesley）的顧問Richard Varga找他出書，因課業繁忙，一時沒時間草稿。1963年高德納獲得加州理工學院數學博士學位，開始投入撰寫工作。1968年，當時31歲的高德納完成前六卷並首次出版，一口氣寫了三千多頁，自此他計劃寫7卷。1999年底被《美國科學家》（American Scientist）期刊列为20世纪最佳12部学术专著之一，与狄拉克的「量子力学」、爱因斯坦的「相对论」、本華·曼德博的「分形论」、鲍林的「化学键」、罗素和阿爾弗雷德·諾斯·懷海德的《數學原理》、約翰·馮·諾伊曼和摩根斯坦的「博弈论」、维纳的「控制论」、伍德沃和霍夫曼的「轨道对称性」、费曼的「量子电动力学」等科学史上的重要著作并列必讀經典。至1976年，已賣出超過一百萬冊。 任何人發現書上的錯誤，都可以向他舉發，並領取2.56美元，因為「256美分剛好是十六進位的一美元」（256 pennies is one hexadecimal dollar.）。比爾·蓋茨在1995年說，“如果你認為你是一名真正優秀的程序員，就去讀第一卷，確定可以解決其中所有的問題。”“如果你能讀懂整套書的話，請給我發一份你的簡歷。”《計算機程序設計藝術》是高德纳一生中最重要的事業，他寫這本書的目的是“組織和總結所知道的計算機方法的相關知識，並打下堅實的數學、歷史基礎”。 同時高德纳在進行第二卷的校樣時，發覺書商把他書中的數學式子排得太難看了，因此發明數學排版軟體TeX，和字形设计系统METAFONT。等到他再回來要寫第四冊的時候，發現他想討論的東西，現在都寫成API了[來源請求]。1992年高德纳自大學退休，處於隱居的生活，退休的原因是為了完成TAOCP這部巨著，他估計大約要花20年來完成。第四冊預計分為A、B、C、D四個分卷出版，其中A分卷已于2005年和2011年陸續出版了平裝本和精裝本。 第一冊 - 基礎演算法（Fundamental Algorithms） 第一章 - 基本概念（Basic concepts） 第二章 - 資訊結構（Information structures） 第二冊 - 半數值演算法（Seminumerical Algorithms） 第三章 - 隨機數（Random numbers） 第四章 - 算术（Arithmetic） 第三冊 - 排序與搜尋（Sorting and Searching） 第五章 - 排序（Sorting） 第六章 - 搜尋（Searching） 第四冊 - 組合演算法（Combinatorial Algorithms），準備中（至2009年4月已出版五個分冊），測試版本已上載到Knuth's的網站（页面存档备份，存于互联网档案馆））。 第4A卷 - 列舉與回溯（Enumeration and Backtracking） 第七章 - 組合的搜尋（Combinatorial searching） 第4B卷 - 圖形與網路演算法（Graph and Network Algorithms） 第七章 - 續（continued） 第4C及4D（可能）卷 - 最佳化與遞歸（Optimization and Recursion） 第七章 - 續（continued） 第八章 - 遞歸（Recursion） 第五冊 - 造句演算法（Syntactic Algorithms），計劃中（預計2020年完成）。 第九章 - 語句掃瞄（Lexical scanning） 第十章 - 剖析技術（Parsing techniques） 第六冊 - 與上下文無關語言理論（Theory of Context-Free Languages），計劃中。 第七冊 - 編譯器技術（Compiler Techniques），計劃中。 7 - 導言（82pp）- 出版於第4卷，第0分冊 7.1 - 零和一（Zeros and ones） 7.1.1 - Boolean basics (88 pp) - 出版於第4卷，第0分冊 7.1.2 - 布尔运算（Boolean evaluation）(67 pp) - 出版於第4卷，第0分冊 7.1.3 - Bitwise tricks and techniques (122 pp) - 出版於第4卷，第1分冊 7.1.4 - Binary decision diagrams (150 pp) - 出版於第4卷，第1分冊 7.2 - Generating all possibilities 7.2.1 - Combinatorial generators（397 pp） 7.2.1.1 - Generating all n-tuples - 出版於第4卷4,第2分冊 7.2.1.2 - Generating all permutations - 出版於第4卷，第2分冊 7.2.1.3 - Generating all combinations - 出版於第4卷，第3分冊 7.2.1.4 - Generating all partitions - 出版於第4卷，第3分冊 7.2.1.5 - Generating all set partitions - 出版於第4卷，第3分冊 7.2.1.6 - Generating all trees - 出版於第4卷，第4分冊 7.2.1.7 - History and further references - 出版於第4卷，第4分冊 7.2.2 - Basic backtrack 7.2.3 - Efficient backtracking 7.3 - Shortest paths 7.4 - Graph algorithms 7.4.1 - Components and traversal 7.4.2 - Special classes of graphs 7.4.3 - Expander graphs 7.4.4 - Random graphs 7.5 - Network algorithms 7.5.1 - Distinct representatives 7.5.2 - The assignment problem 7.5.3 - Network flows 7.5.4 - Optimum subtrees 7.5.5 - Optimum matching 7.5.6 - Optimum orderings 7.6 - Independence theory 7.6.1 - Independence structures 7.6.2 - Efficient matroid algorithms 7.7 - Discrete dynamic programming（也见传递矩阵法） 7.8 - Branch-and-bound techniques 7.9 - Herculean tasks (又名NP-hard問題） 7.10 - Near-optimization 8 - 遞歸（Recursion） 按卷排序： 第一卷: Fundamental Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xx+650pp. ISBN 0-201-89683-4 第一卷，第一分冊: MMIX -- A RISC Computer for the New Millennium. (Addison-Wesley, February 14, 2005) ISBN 0-201-85392-2（will be in the fourth edition of volume 1） 第二卷: Seminumerical Algorithms. Third Edition (Reading, Massachusetts: Addison-Wesley, 1997), xiv+762pp. ISBN 0-201-89684-2 第三卷: Sorting and Searching. Second Edition (Reading, Massachusetts: Addison-Wesley, 1998), xiv+780pp.+foldout. ISBN 0-201-89685-0 第四卷，第零分冊: Introduction to Combinatorial Algorithms and Boolean Functions, (Addison-Wesley Professional, April 28, 2008) vi+240pp, ISBN 0-321-53496-4 第四卷，第一分冊: Bitwise tricks & techniques; Binary Decision Diagrams (Addison-Wesley Professional, March 27, 2009) viii+260pp, ISBN 0-321-58050-8 第四卷，第二分冊: Generating All Tuples and Permutations, (Addison-Wesley, February 14, 2005) v+127pp, ISBN 0-201-85393-0 第四卷，第三分冊: Generating All Combinations and Partitions. (Addison-Wesley, July 26, 2005) vi+150pp, ISBN 0-201-85394-9 第四卷，第四分冊: Generating all Trees -- History of Combinatorial Generation, (Addison-Wesley, February 6, 2006) vi+120pp, ISBN 0-321-33570-8 按出版日期排序： 第一卷，第一版, 1968年. 634pp. ISBN 0-201-03801-3. 第二卷，第一版, 1969年, xi+624pp, ISBN 0-201-03802-1. 第三卷，第一版, 1973年, xi+723pp+centerfold, ISBN 0-201-03803-X 第一卷，第二版, 1973年, xiii+634pp, ISBN 0-201-03809-9. 第二卷，第二版, 1981年, xiii+ 688pp. ISBN 0-201-03822-6. 《计算机程序设计艺术(第1卷):基本算法》，國防工業出版社，譯者：蘇運霖，ISBN 978-7-118-02799-0 《计算机程序设计艺术(卷1):基本算法》，第三版，人民邮电出版社，译者：李伯民，范明，蒋爱军，ISBN 9787115360670（出版时间：2016年） 1999年，高德纳教授腾出时间回覆了所有信件，共汇出125张支票。其中Axel Böttcher曾先后5次得到2.56美元的支票，3次得到5.12美元的支票。 1974 – Donald E. Knuth See the ACM Author Profile in the Digital Library[永久失效連結] American Scientist Online - 100 or so Books that shaped a Century of Science. [2009-07-31]. （原始内容存档于2009-09-28）.  Overview of topics（页面存档备份，存于互联网档案馆） (Knuth's personal homepage)（英文）