计算机程序设计艺术 介绍

article/2025/10/20 22:34:37

计算机程序设计艺术 》(The Art of Computer Programming ),簡稱TAOCP,是高德纳 (Donald Ervin Knuth)编著的关于计算机程序设计的七卷本著作。作者並因此获得美国计算机协会1974年 图灵奖 。[1]

目录

[隐藏 ]
  • 1 概述
  • 2 章節
  • 3 第4A卷,列舉與回溯(Enumeration and Backtracking)的大綱
  • 4 第4B卷,圖形與網路演算法(Graph and Network Algorithms)的大綱
  • 5 第4C及4D(可能)卷, 最佳化與遞歸(Optimization and Recursion)的大綱
  • 6 發佈
  • 7 英文版本
    • 7.1 當前版本
    • 7.2 以前版本
  • 8 中譯本
  • 9 注釋

[编辑 ] 概述

高德纳

1962年,Knuth還是個研究生的時候就開始了程式設計的工作。高德納在攻讀博士其間,Addison-Wesley 公司的顧問 Richard Varga 找他出書,因課業繁忙,一時沒時間草稿,1963年高德納獲得加州理工學院數學博士學位。1968年,31歲開始出版他的歷史性經典巨著: The Art of Computer Programming ,一口氣寫了三千多頁,自此他計劃寫7卷。1999年底被美國科學家期刊(American Scientist)列为20世纪最佳12部学术专著之一,与狄拉克 的「量子力学」、爱因斯坦 的「相对论」、曼德布罗特的「分形论」、鲍林 的「化学键」、罗素和怀特海德的「数学基础」、冯诺依曼 和摩根斯坦 的「博弈论」、维纳的「控制论」、伍德沃和霍夫曼的「轨道对称性」、费曼 的「量子电动力学」等科学史上的重要著作并列必讀經典[2] 。1976年為止,已賣出超過一百萬冊。

任何人發現書上的錯誤,都可以向他舉發,並領取 $2.56美金,因為「256美分剛好是十六進位的一美元」(256 pennies is one hexadecimal dollar.)[3] 。比爾·蓋茨 在 1995年說,“如果你認為你是一名真正優秀的程序員,就去讀第一卷,確定可以解決其中所有的問題。”“如果你能讀懂整套書的話,請給我發一份你的簡 歷。”《計算機程序設計藝術》是Knuth一生中最重要的事業,他寫這本書的目的是“組織和總結所知道的計算機方法的相關知識,並打下堅實的數學、歷史基 礎”。

同時他在進行第二卷的校樣時,發覺書商把他書中的數學式子排得太難看了,因此發明數學排版軟體TE X,和字形设计系统METAFONT 。 等到他再回來要寫第四冊的時候,發現他想討論的東西,現在都寫成API了。1992年Knuth自大學退休,處於隱居的生活,退休的原因是為了完成 TAOCP 這部巨著,他估計大約要花 20 年來完成。目前此書出版至第三冊,第四冊預計2005年2月出版,他期望第四卷的篇幅約為2000頁,並分為三個獨立的章節。

[编辑 ] 章節

  • 第一冊 - 基礎演算法(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), 計劃中(預計2015年完成).
    • 第九章 - 語句掃瞄(Lexical scanning)
    • 第十章 - 剖析技術(Parsing techniques)
  • 第六冊 - 與上下文無關語言理論(Theory of Context-Free Languages), 計劃中
  • 第七冊 - 編譯器技術(Compiler Techniques),計劃中

[编辑 ] 第4A卷,列舉與回溯(Enumeration and Backtracking)的大綱

  • 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分冊

[编辑 ] 第4B卷,圖形與網路演算法(Graph and Network Algorithms)的大綱

      • 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

[编辑 ] 第4C及4D(可能)卷, 最佳化與遞歸(Optimization and Recursion)的大綱

    • 7.7 - Discrete dynamic programming
    • 7.8 - Branch-and-bound techniques
    • 7.9 - Herculean tasks (又名NP-hard 問題)
    • 7.10 - Near-optimization
  • 8 - 遞歸 (Recursion)

[编辑 ] 發佈

  • 第一卷:1968年
  • 第二卷:1969年
  • 第三卷:1973年
  • 第四卷:2005年2月(第1期)

[编辑 ] 英文版本

[编辑 ] 當前版本

按卷排序:

  • 第一卷: Fundamental Algorithm s . 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 Tuple s and Permutation s , (Addison-Wesley, February 14, 2005) v+127pp, ISBN 0-201-85393-0
  • 第四卷, 第三分冊: Generating All Combination s 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 .

[编辑 ] 中譯本

  • 《计算机程序设计艺术》,國防工業出版社 ,譯者:蘇運霖 ISBN 978-7-118-02799-0

[编辑 ] 注釋

  1. ^ 1974 – Donald E. Knuth See the ACM Author Profile in the Digital Library
  2. ^ American Scientist Online - 100 or so Books that shaped a Century of Science .
  3. ^ 1999年,高纳德教授腾出时间回覆了所有信件,共汇出125张支票。其中Axel Böttcher 曾先后5次得到2.56美金的支票,3次得到5.12美金的支票。

http://chatgpt.dhexx.cn/article/XuCftBnQ.shtml

相关文章

ici isi_ISI的完整形式是什么?

ici isi ISI:印度标准协会/服务间情报/印度统计研究所 (ISI: Indian Standards Institute / Inter-Service Intelligence / Indian Statistical Institute) 1)ISI:印度标准协会 (1) ISI: Indian Standards Institute) ISI is an abbreviation of the Ind…

lio linux工具,ISCSI (简体中文)/LIO (简体中文)

翻译状态:本文是 ISCSI_Target 的翻译。上次翻译日期:2015-06-11。如果英文版本有所更改,则您可以帮助同步翻译。 The translation of this article or section does not reflect the original text. Reason: Not updated since 2015 (Discus…

ITIL与CI/CD

第一节:ITIL TIL即IT基础架构库(Information Technology Infrastructure Library), ITIL,信息技术基础架构库)由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末制订,现由英国商务部OGC(Office of Gove…

ionic

#一、ionic的安装运行 1.安装nodejs 2.npm install -g cordova ionic npm i -g cordova ionic 3.创建项目 ionic start myApp tabs 4.ionic -v 是ionic 的cli版本 5.ionic serve 6.ionic g component actionsheet 必写component // 根模块 告诉ionic如何组装应用 // 引入 angul…

Calico

Calico基本概念 Calico是针对容器,虚拟机和基于主机的本机工作负载的开源网络和网络安全解决方案。Calico支持广泛的平台,包括Kubernetes,OpenShift,Docker EE,OpenStack和裸机服务。Calico将灵活的网络功能与无处不在…

ITIL是什么意思?ITIL是什么?

ITIL是什么? ITIL是Information Technology Infrastructure Library的缩写,即:信息技术基础架构库。 ITIL是由英国政府部门CCTA(Central Computing and Telecommunications Agency)在20世纪80年代末开发的一套IT服务管理标准库,它…

iLLD简介

iLLD, 全称 Infineon Low Level Driver, AURIX 家族的开源软件包, 支持多种编译器, 硬件抽象, 包含Demo, 让外设的配置/初始化/使用更简单. iLLD提供了函数, 驱动和结构体, 实现3个层次的抽象: Special FunctionRegister Level: 通过名字访问寄存器位Driver Level: 封装寄存器…

手机浏览器怎么查看html,手机浏览器网页收藏在哪里查看

qq浏览器的收藏夹在哪里?现在的浏览器都有自己的收藏夹,QQ浏览器作为非常受大家欢迎的一款浏览器,它的收藏夹又在哪里呢?其实QQ浏览器的收藏夹是默认的,那怎么找到呢?以及QQ浏览器的收藏夹如何导入导出呢&a…

Android安卓自带的 WebView 浏览器内核更新

Android 自带的 WebView 更新 一、Android 7 在安卓7系统里,一般内置的浏览器内核为很低版本,如52.0.2743.100。导致前端的新语法不支持,如ES6的语法最基本的 async,媲美老 IE 的环境。 前言 在设置 - 应用 - 显示系统应用里面…

android 点击事件失效,安卓手机微信自带浏览器点击事件失效解决

在移动端做了个导航,长这样 原来结构是用的span 导航 绑定用的是jquery的.click $(.menu_icon).click(function () { $("#nav-phone").stop().animate({right:"0"},500); }) $(.close).click(function () { $("#nav-phone").stop().a…

利用ADB命令强制卸载oppo自带浏览器

前言 oppo手机是自带oppo浏览器的,这个自带的浏览器带有oppo推荐的负面新闻很多,而且有时也自动推送一些消息给用户,页面不够简洁,打开浏览器负面内容比较多,然后我想卸载发现被系统做了限制,不能卸载&…

android自带浏览器调试,Android 手机浏览器调试使用Chrome进行调试实例详解

搜索热词 使用PC上的 Chrome 远程调试手机端的页面 工具准备 手机端:chrome for Android,; PC端:安装谷歌浏览器(最好是最新版的开发者版本) USB 连接线,也就是你充电器的那条线 开启调试模式 使用 USB 连接你的电脑,并开启调试模…

手机自带浏览器的强大

移动端 在大移动端中,大部分都是人手一台手机,大部分机型系统不是ios就是安卓,但是作为h5前端必须得获取是ios还是安卓都是正常,可是你难以相信这个世界坑你的总是有 获取手机浏览器哪个系统 你们确定下面的方式能够获取的对吗&am…

请用android手机自带浏览器,还在用手机自带浏览器吗?推荐两款无广告、功能齐全的浏览器...

最近一段时间更新的安卓版有些多,进而很多苹果的朋友就表示不开森。小编也是秉承免费分享黑科技的口号,大家应该都懂,苹果端的限制比较多,所以有时候安卓的有苹果的不一定有,大家一定要谅解呀。 好吧,今天A…

Android开发打开手机自带浏览器

Android开发打开手机自带浏览器 创建一个页面&#xff0c;点击按钮跳转到手机自带浏览器并打开指定网站。 1.首先编写页面布局 在activity_main.xml文件中编辑页面布局 <?xml version"1.0" encoding"utf-8"?> <RelativeLayoutxmlns:android&q…

调用Android自带浏览器打开网页

转载请注明出处: http://blog.csdn.net/lowprofile_coding/article/details/77928608 在Android中可以调用自带的浏览器&#xff0c;或者指定一个浏览器来打开一个链接。只需要传入一个uri&#xff0c;可以是链接地址。 启动android默认浏览器 在Android程序中我们可以通过…

探讨Android中的内置浏览器和Chrome

1.Android默认浏览器和Chrome的区别 Android出厂自带的浏览器&#xff1a;安卓WebKit浏览器&#xff0c;也成内置浏览器或者默认浏览器。 安卓WebKit不是Chrome。Chrome浏览器在它的用户代理字符串中有Chrome&#xff0c;但是安卓WebKit浏览器中没有。 最新的安卓WebKit的浏览器…

appium : 查看Android手机自带浏览器内核版本(webview版本)

1、通过手机设置查看 路径&#xff1a;设置 → 应用管理 → Android System WebView 2、手机打开浏览迷网址查询 浏览迷网迷查看手机浏览器内核版本&#xff1a;https://liulanmi.com/labs/core.html 魅族Note 5手机通过手机设置内无法查看版本&#xff0c;可在浏览器内输入…

linux打开VI编辑器时报错E325

linux打开VI编辑器时有时会出现报错E325&#xff0c;如下图&#xff0c;这是因为编辑器没有保存就关闭&#xff0c;所以出现这个界面强制让保存。这个时候可以选择R回车对文件进行保存&#xff0c;再删除掉用来报错的.swp文件就可以了。 .swp文件的目录大概在&#xff08;2&…