计算机程序设计艺术・卷1

Donald E. Knuth

出版时间

2015-12-31

ISBN

9787115360670

评分

★★★★★

标签

编程

书籍介绍
这或许是你读过最不像'编程入门书'的算法经典。翻开《计算机程序设计艺术·卷1》,你会被大量数学公式、数论与组合数学、以及一套名为 MIX 的汇编语言包围,不少读者正是从这里开始'劝退'——'根本读不下去''对数学要求太高'成了高频感叹。但正因如此,它也成就了无可替代的价值:Knuth 不满足于告诉你'算法怎么写',而是逼你用数学归纳法证明算法正确、用生成函数与渐近分析精确计算每一步的平均执行次数。在这里,算法不是经验技巧,而是一门可以被严格'看见'的科学。它适合愿意啃数学、追求'知其所以然'的人;若你只想快速上手编码,第一章之外的部分或许会显得沉重。
作者简介
高德纳(Donald E. Knuth)计算机科学家,算法与程序设计技术的先驱者、斯坦福大学计算机系荣休教授、计算机排版系统TEX和METAFONT字体系统的发明人,因诸多成就以及大量富于创造力和具有深远影响的著作(19部书,160篇论文)而誉满全球。近些年,他将精力全部投入到《计算机程序设计艺术》七卷集的史诗般创作中。Knuth教授获得过许多奖项和荣誉,包括美国计算机协会图灵奖、美国国家科学奖章、美国数学学会的斯蒂尔奖,以及因发明先进技术于1996年荣获的京都奖。1996年,设立了以其名字命名的Donald E. Knuth奖,授予那些为计算机科学基础做出杰出贡献的人。
AI导读
核心看点
  • 计算机科学领域的经典之作,奠定程序设计理论基础
  • 深入讲解基本算法与信息结构,涵盖栈、队列及树
  • 融合数学归纳法与渐近分析,强调算法的严谨性
读者共识
  • 公认的神书,地位崇高但阅读难度极大
  • 数学公式密集,非科班读者易产生劝退感
  • 适合收藏与查阅,作为工具书价值高于通读
精彩摘录
  • "A knowledge of elementary calculus will suffice for most of the mathematics in these books, since most of the other theory that is developed herein. However, I do need to use deeper theorems of complex variable theory, probability theory, number theory, etc., at times, and in such cases I refer to a"
  • "3。[20](为了提高效率)修改算法E,使其避免出现m←n之类的平凡替换操作。按照算法E的风格写出这个新算法,将其称为算法F。"
  • "An algorithm must be seen to be believed, and the best way to learn what an algorithm is all about is to try it."
  • "The design of computer representations depends on the desired function as well as on its intrinsic properties."
  • "6。「20]当n=5时,执行算法卫步骤E1的平均次数T5是多少?"
  • "重要注记:尽管下面几小节会就计算机算法研究中所需的数学技巧提供相当广泛的练习,但是大多数读者不会一看便知它们同计算机程序设计之间有怎样的紧密联系(1.2.1节除外)读者可以选择仔细阅读下面几小节,相信我的断言,这里讨论的主题极其相关。但是为了更有学习动力,更可取的方式或许是首先略读这一节,而后(等到在后几章见过各种计算方法的大量应用之后)再返回来进行更深入的学习。读者如果在首次阅读本书时在这里花费过多时间,那么可能一直学不到计算机程序设计的部分!然而,读者至少应该熟悉下面几小节的大体内容,即便是在首次阅读也应该尝试求解几道习题。应当特别注意1.2.10节,因为它是后面大部分理论内容的起点。1."
  • "我们可以把这个方法看成一个算法式证明过程。事实上,如果已经确立上面的步骤(a)和(b),那么下述算法对于任意正整数n,都能产生P(n)为真的证明。"
目录
第1章基本概念1
1.1算法.1
1.2数学准备.8
1.2.1数学归纳法.8
1.2.2数、幂和对数16

显示全部
用户评论
六门课,More is different:自动机(算法=程序=图灵机=解释器),汇编,数据结构(组合数学对象和计算机表示),算法分析,组合数学,模拟器及内存管理和垃圾回收等常用算法介绍。现代数学是什么?首先,建立抽象对象,和常规编程(编码解码)相反,先对问题解码然后编码的过程。
根本看不懂……全书都是数学公式和汇编指令……
汇编语言劝退
难道所谓大师的书就一定要打高分吗?难道这些大部头的书没看过的就因为名气就要打高分吗?让我想起了郭德纲口中的艺术家:一群说相声的,他熬死了其他人,他就是艺术家,他活着呢,咋说咋有理。
最好的算法书
高山仰止
求书
收藏