查看 Power Builder程序设计视频教程 王春宇24讲 哈工大 《计算机程序设计艺术》(Donald E.KNUTH - The Art of Computer Programming)[PDF]-简介及下载-电脑,编程开发,编程思想
首页| 如何下载(?) | 网站地图
大学视频教程网logo点击查看更多 大学视频教程
网站地图 | 当前位置: 大学视频教程网电脑编程开发编程思想 → 《计算机程序设计艺术》(Donald E.KNUTH - The Art of Computer Programming)[PDF]

《计算机程序设计艺术》(Donald E.KNUTH - The Art of Computer Programming)[PDF]

大学视频教程,璇璇视频教程
资料录入:侠小侠

更新时间:2009-07-31 14:05:00

文件大小:157 MB

语言要求:英文

资料类型:电子书

下载方式:电驴(eMule)下载

《计算机程序设计艺术》(Donald E.KNUTH - The Art of Computer Programming)[PDF]

截图:
《计算机程序设计艺术》(Donald E.KNUTH - The Art of Computer Programming)[PDF]

计算机程序设计艺术介绍
《计 算机程序设计艺术》重译自Donald E. Knuth(汉名高德纳)的三卷著作:"The Art of Computer Programming: 1. Fundamental Algorithms; 2. Seminumerical Algorithms; 3. Sorting and Searching";三卷中文名为《基本算法》、《半数值算法》及《排序与查找》。本书内容博大精深,作者因为三卷书获得美国计算机协会1974年图灵 奖(该奖被国际公认为计算机科学领域的最高奖项)。

本书作者D. E. Knuth是在计算机学界十分著名的学者,在本领域享有很高权威和盛名,他的这部著作是无数计算机专业人员的学习教材和参考读物,也是许多专业研究工作者经常阅读的经典。本书已被翻译为几十种文字在世界各地出版,英文原版书在国外已经是第11次印刷。
该书1999年底被American Scientist列为20世纪最佳12部学术专著之一(与狄拉克的量子力学、爱因斯坦的相对论、曼德布罗特的分形论、鲍林的化学键、罗素和怀特海德的数 学基础、冯诺意曼和摩根斯坦的博弈论、维纳的控制论、伍德沃和霍夫曼的轨道对称性、费曼的量子电动力学等科学史上的经典著作并列)。
本书结合大量数学知识,分析不同应用领域中的各种算法,研究算法的复杂性,即算法的时间、空间效率,探讨各种适用算法等,其理论和实践价值得到了全世界计 算机工作者的公认。书中引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果。另外,作者对有关领域的科学发展史也有深入研 究,因此本书介绍众多研究成果的同时,也对其历史渊源和发展过程做了很好的介绍,这种特色在全球科学著作中是不多见的。
作者高德纳几十年来对此书倾注的心血难以计量,他力求随着有关领域的最新进展不断更新内容,力求随着原版书的不断重印令其技术的、史实的和出版方面的错误 或不当减到极少(他为了能够满意地随时修订自己的著作,发明了计算机排版系统TEX和字形设计系统METAFONT,无偿公诸于巨,使全世界的科技文献作 者普遍受惠),现在其最新印次已很难找到错误,而相关史实的新证据、相关研究的新进展、习题的新解答仍在及时充实到勘误表或新的印次中。

翻译《计算机程序设计艺术》经过的片断回忆

苏 运 霖

那是在1973年至1974年期间,为了在吉林大学开设有关软件的课程,我被吉林大学派往中科院数学所进修,同时和数学所、中山大学和贵州大学的同志一起 协作,从事XR(系列软件)项目的某个子课题的研究。当时,国内对于计算机软件的重要性才刚刚有所认识,因此对于程序设计、操作系统等,以中关村及北大、 清华为中心,掀起了一个引进国外先进技术的热潮。就在这期间的一个周日,我来到五道口的外文书店,猛然发现了醒目的"The Art of Computer Programming"的3卷大部头新书,心绪为之一动,通过流览书的目录和部分章节,感到这是极有价值的书,在决心认真阅读学习的同时,心里也产生了 把它们译成中文的念头。

当然,这样的重头书,不会只引起我一个人的注意。计算所和数学所的许多同行也都传开了有这本新书的消息。人们自然也都感到,把它译出,很有价值。

不久之后,我就回到了吉林大学。长春的外文书店,也都有了这套书,我向当时在一起工作的管纪文先生介绍了这套书,并把我想把它们译出的想法告诉了他。当然 我们也告诉了当时任系主任的中科院学部委员,我们的老师王湘浩教授,他对我们这一重大举动,也深表支持。于是,我们也就这样开始干起来。

但是,那还是"文化大革命"时期,虽然已经不是只抓革命,不搞生产的文化大革命时期;特别是在邓小平复出,主持中央工作的阶段,学校已开始了招生和教学。 然而,压倒一切的还是革命,后来又搞起批林批孔,矛头所指,直接针对周总理,后来又再次搞起批邓。当时,我白天时间,全在挖防空洞中消耗掉了,所以,我只 能在晚上和清晨进行翻译工作。我和管纪文先生的分工是:我全部负责翻译,再由他誊清我的译文,并做一些润饰工作。整个3卷,我们都是这样干的。我们的翻译 工作,真正地做起来,是在1975年底才开始的。

在我们开始从事这一工作时,当然受到人们的注意。一种人认为,我们干不了,这也有一点道理,因此在此之前,我们都还没有干过这样重大的翻译工作,特别是, 这个领域对我们来说,完全是新的。但是,实际上,我们并非毫无基础,在此之前,我已经翻译过由当时计算所所长许孔时访问美、加带回的一本《操作系统》教材 (多伦多大学),并且全文刊登在由当时的1015所出版的《计算机参考资料》上,当时这一译文,就倍受读者称赞,认为译文精确、流畅,可读性强;此外,我 还翻译过当时著名的《课程表68》这一ACM制定的教学大纲。所以,只能说以前的工作,在其工作量上、难度上,没有现在的工作这么大而已,但是,有了以前 的基础,我们怎么就干不了呢!所以对于这种人和他们的责难,我们毫不理会。

另一种人,则站在"革命者"的角度,说我们又在搞崇洋媚外的一套,说我们宣扬西方的文明,宣扬西方的生活方式,不知怎么回事,当时竟传出,这本书是宣扬资 产阶级生活方式的。我曾为了翻译《课程表68》而受过批判和指责,所以,对于现在的责难,我也就不当一回事。我们坚信,这是一本高质量的科技著作,它在国 外引起重视,在国内,也应得到同样的重视,才有利于我国的科技发展。在我们开始进行翻译时,我们并没有联系出版社讨论出版事宜。只是到了我们把整个第1卷 都已翻译完时,我们才开始找出版社。而关于我们进行这套书的翻译的消息,不胫而走。在北京的很多同行中,许多人早已知道此事。当我们把第1卷的翻译稿带到 北京后,许多朋友也都主动热心地帮我们联系此事。在这方面,给了我们很大帮助的是北京1015所的王寿松、梁大同、严友淳等同志,还有数学所的陆汝钤院 士、周龙骧教授等,以及曾经到过斯坦福大学的软件所董韫美院士等。他们帮我们联系了国防工业出版社 (为什么没有联系科学出版社,我们也不大清楚,可能1015所同国防工业出版社更密切些,是其中的一个原因吧),最后,我们得到的答复是,我们的书有望在 国防工业出版社出版。在这个过程中,我们也就开始同国防工业出版社的四编室的同志们打交道,当时四编室主任是周先珂同志,编辑室里有张均武、徐德霆、周烈 强等同志,而负责从事本书编辑工作的,最初就是徐德霆同志。

然而,事情却决非这么容易,因为尽管我们在下边已开始操作,但此事成与不成,仍须经过上头的同意。据说,国防工业出版社的总编也无权批准,所以,尽管我们 把书稿交给了出版社,但后来却迟迟没有下文。我们当然很着急,想知道事情的真相。然而我们又没有任何了解真相的渠道。后来,听了1015所同志们的介绍, 我们才知道阻力来自于上头。我们也才知道,所谓此书宣扬资产阶级生活方式、宣扬西方文明等,实乃空穴来风,正是上头有人在这么说。而且,也才知道,许多国 内当时的专家,如计算所阎沛霖、罗沛霖,15所总工陈力为等,都以他们政治上的大无畏精神和业务上的远见卓识,给了我们支持,他们力荐这套书的出版,最后 才使上边儿为我们出书开了绿灯,也才使后来的工作,顺利地进行下去。这段使我们的工作险些胎死腹中的时间,有两三个月之久。这也就是为什么我要在本书的新 译本的前言中,回忆此事,并对那些曾经帮助过我们的领导和专家致以深深谢意和敬意的原因。当然,说起来,最根本的是,邓小平同志改革开放,科教兴国的思 想,使中国不再是闭关锁国,夜郎自大,这才有我们在该书译者前言中提到的祖国科学的春天。

这里还要提到本书作者D. E. Knuth的访华之行。1977年,Knuth携夫人和两个当时尚未成年的女儿访问中国,为时3周。陪同他访问的是加州圣地亚哥大学的华裔教授胡德强先 生,胡先生是北京籍人,但在台湾受教育和成长,讲一口流利的北京话。Knuth来华访问的消息,由科学院数学所的陆汝钤教授等通知我和管纪文先生,并请我 们也从长春前去北京,参加同Knuth的会见和听取他的报告、同他座谈等活动,这使我们有幸同本书作者认识。他当时还未满40岁,然而已经学富五车,蜚声 四海,并荣获计算机界最高奖--图灵奖。但见他高大健壮,风流倜傥,而又彬彬有礼,极富学者风度。他在北京的讲话,谈到了算法和算法分析的重要性以及一些 他认为甚有价值的问题。也谈到了后来成为他的重大成果的计算机印刷和排版技术——METAFONT和TEX。

胡先生向我们讲述了他的一些生平。他是在加州理工学院接受的高等教育,由于他聪明过人,又十分勤勉发奋,因此在大学阶段就已经做出了令业界瞩目的成就。后 来,他没有通过硕士阶段,就直接读博士学位。他在CACM杂志社曾经工作过一段时间,审查和研究了许多算法,从而为他成为算法设计和分析的先驱打下了基 础。他不仅在计算机科学领域有极高造诣,而且兴趣广泛。他酷爱文学,对莎士比亚戏剧深有研究,而且他本人就出版过小说。他还热爱音乐,对音乐也很有研究。 后来,还写过用计算机谱曲的文章。他生活很有规律,每天都有固定安排,如周一是阅读和处理文件的时间,周二是接待学生和客人来访时间,周三爬山,周四上 课,然后其它是研究工作时间。他有过人的精力,每天可以不离书案连续工作十几个小时。还讲到他的夫人,她是学过中文的。大概就是由于这点吧,使他们对中国 很友好。他在来中国之前,要他的学生——姚储风为他取了中国名字——高德纳。当他得知我和管先生是他的著作的中文译者后,对我们表示了鼓励和支持,后为当 我们请他为中文版写序时,他欣然答应,并且很快就寄来了。但是遗憾的是,后来该书第1次印刷时,该序未被收入其中,使我觉得很难向他作解释。然而在第2次 印刷时,还是收进来了。这次,在我们出版新版本时,他又一次为中文本写序,足见他对于此书在中国出版的支持,而且信中充满了作者对中国读者的殷切期望。信 中提到要用他的中国名字,这大概也是因为当初我们没有用他的中文名的一点不满而发吧。

这里我还想透露一件鲜为人知的事情。在80年代,中国开始大规模公派留学生出国,我当时也属于政府考虑选派的对象,因此曾经去信给他,表示希望他帮助安排 到斯坦福大学进修。他回信表示进修不可能,但他可以让我攻读他的博士学位。由于不知道博士学位是由对方提供资助的,我竟由于感到经济上没有保证而没有接 受。这成为日后的一大遗憾,我把这当成一生中最大的失误。

在第1卷出版的过程中,我们继续进行第2卷和第3卷的翻译工作,而且所有3卷书,在我于1980年调到暨南大学之后不久,都全部完成了。但是3卷的出版顺 序,却并非按照1,2,3的自然顺序,这是因为当时有些专家认为第3卷比第2卷更急需,要我们先把第 3卷搞好。于是造成了历史上这一个事实--第3卷先于第2卷出版。而且,由于书价的剧烈浮动,使书的印量也发生了很大变化--第1卷头一次印了30 000册,第2次又印了10 000册;但第3卷则仅印了10 000册;第2卷,差不多推迟10年出版,和第1卷定价相差达10倍,因此印量仅3000册。

第2卷的推迟,还有一个原因,即原书作者在该书出版不久,即出了新版,新版大概是1984年或 1985年出版的,因此出版社自然希望我们重新按新版本译出。此时我已经在新西兰,而译稿交给陆汝钤院士校阅。那时他把译稿放在他的办公室里,办公室里是 七八个人一起办公(可见当时知识分子的工作条件何其艰苦),结果,有一年,在他出访而所内搞迎新大扫除时,把译稿当成废纸扔掉了。所以在1986年,我从 新西兰回国之后,在出版社找我要稿子时,陆教授才发现稿子丢失了。还好,并未全部扔掉,大概丢了三分之一多一些。他为此深感抱歉,我也无话可说,只好重新 翻译。在这期间,又不知什么原因,一直使该书的出版拖延良久,直到1992年才终于出版了。

以上这些事情,不觉之间,已经距今20余年,至少也有10余年了。在我重操旧业翻译该书新版时,回忆它们,感触良深。写下它,作为永远铭记的一段人生经历。

英文扫描版djvu截图:
《计算机程序设计艺术》(Donald E.KNUTH - The Art of Computer Programming)[PDF]



目录

第1章 基本概念
1.1 算法
1.2 数学准备
1.2.1 数学归纳法
1.2.2 数,幂和对数
1.2.3 和与积
1.2.4 整数函数和初等数论
1.2.5 排列和阶乘
1.2.6 二项式系数
1.2.7 调和数
1.2.8 斐波那契数
1.2.9 生成函数
1.2.10 一个算法的分析
1.2.11 渐近表示
1.3 MIX
1.3.1 MIX的描述
1.3.2 MIX汇编语言
1.3.3 对排列的应用
1.4 某些基本程序设计技术
1.4.1 子程序
1.4.2 共行程序
1.4.3 解释性程序
1.4.4 输入和输出
1.4.5 历史和文献
第2章 信息结构
2.1 引论
2.2 线性表
2.2.1 栈,队列和双端队列
2.2.2 顺序分配
2.2.3 链接分配
2.2.4 循环表
2.2.5 双重链接表
2.2.6 数组和正交表
2.3 树
2.3.1 遍历二叉树
2.3.2 树的二叉树表示
2.3.3 树的其它表示
2.3.4 树的基本数学性质
2.4 多重链接结构
2.5 动态存储分配
2.6 历史和文献
习题答案
附录A 数值数量表
附录B 记号索引
索引与词汇表

第3章 随机数

3.1 引言
3.2 生成一致随机数
3.2.1 线性同余法
3.2.1.1 模数的选择
3.2.1.2 乘数的选择
3.2.1.3 效能
3.2.2 其它方法
3.3 统计检验
3.3.1 研究随机数据的一般检验方法
3.3.2 经验检验
3.3.3 理论检验
3.3.4 谱检验
3.4 其它类型的随机量
3.4.1 数值分布
3.4.2 随机抽样和洗牌
3.5 什么是随机序列
3.6 小结

第4章 算术

4.1 定位计数系统
4.2 浮点算术
4.2.1 单精度计算
4.2.2 浮点算术的精确度
4.2.3 双精度计算
4.2.4 浮点数的分布
4.3 多精度算术
4.3.1 经典算法
4.3.2 模算术
4.3.3 乘法能有多块?
4.4 进制转换
4.5 有理算术
4.5.1 分数
4.5.2 最大公因子
4.5.3 欧几里得算法的分析
4.5.4 分解素因子
4.6 多项式算式
4.6.1 多项式除法
4.6.2 多项式的因子分解
4.6.3 求幂值
4.6.4 多项式求值
4.7 幂级数的操作

习题答案

附录A 数值数量表
附录B 符号索引

索引与词汇表

第5章 排序

5.1 排列的组合性质
5.1.1 反序
5.1.2 多重集合的排列
5.1.3 路段
5.1.4 图表和对合
5.2 内部排序
5.2.1 通过插入进行排序
5.2.2 通过交换进行排序
5.2.3 通过选择进行排序
5.2.4 通过合并进行排序
5.2.5 通过分布进行排序
5.3 最优排序
5.3.1 极少比较排序
5.3.2 极少比较合并
5.3.3 极少比较选择
5.3.4 排序网络
5.4 外部排序
5.4.1 多路合并和替代选择
5.4.2 多阶段合并
5.4.3 级联合作
5.4.4 向后读带
5.4.5 振荡排序
5.4.6 关于磁带合并的实际考虑
5.4.7 外部基数排序
5.4.8 双磁带排序
5.4.9 磁盘和磁鼓
5.5 小结、历史和文献目录

第6章 查找

6.1 顺序查找
6.2 通过键码比较进行查找
6.2.1 查找一个有序的表
6.2.2 二叉树查找
6.2.3 平衡的树
6.2.4 多路树
6.3 数字查找
6.4 散列
6.5 利用辅助键码的检索

习题答案
附录A 数值数量表
附录B 记号索引
人名和术语中英对照表

大学视频教程 No Rights Reserved.