The Art of Computer Programming, Volume 1 Fundamental Algorithms 1997

时间:2022-01-13 16:22:13
【文件属性】:

文件名称:The Art of Computer Programming, Volume 1 Fundamental Algorithms 1997

文件大小:60MB

文件格式:EPUB

更新时间:2022-01-13 16:22:13

算法

为数字计算机编写程序的过程特别愉快,因为我们不仅可以获得经济和科学两方面的收益,还能尽享写诗或作曲般的艺术体验.本书是多卷丛书中的第一卷,整个丛书旨在培训读者掌握程序员必备的各种技能. 在接下来的章节中,我不打算介绍计算机程序设计的入门知识,而是假定读者已有了一定的基础.预备知识实际上非常简单,但初学者恐怕需要一些时间并动手实践,方能理解数字计算机的概念.读者应该具有如下知识. (a) 对存储程序式数字计算机的工作原理有一些认识.不一定需要电子学背景,但需要知道指令在机器内存中是如何保存和连续执行的. (b) 能够用计算机可以“理解”的确切术语来描述问题的解决方案.(这些机器不懂所谓的常识,它们只会精准地按要求干活,不会多做也不会少做.这是刚开始接触计算机时最难领悟的概念.) (c) 掌握一些最基本的计算机技术,例如循环(重复执行一组指令)、子程序的使用、下标变量的使用. (d) 能够了解常见的计算机术语,如内存、寄存器、位、浮点、溢出、软件等.正文中未给出定义的一些术语,会在每卷最后的索引部分给出简明的定义.或许可以把这四点归结为一个要求:读者起码为一台计算机编写和测试过至少(比如说)4个程序. 我力图使本套丛书能满足两方面的需求.首先,这些书总结了几个重要领域的知识,可以作为参考书;其次,它们可以用作自学教材或计算机与信息科学专业的大学教材.为此,我在书中加入了大量的习题,并为多数习题提供了答案.此外,我在书中尽可能地用事实说话,言之有据,避免做一些含糊的泛泛而谈. 这套书针对的读者不是那些对计算机只有一时兴趣的人,但也绝不仅限于计算机专业人士.其实,我的一个主要目标是使其他领域的广大工作者能够方便地了解这些程序设计方法,他们本可以利用计算机获得更丰硕的成果,但却没时间去技术刊物中查找必需的信息. 本套丛书的主题可以称为“非数值分析”.在传统意义上,计算机是与方程求根、数值插值与积分等数值问题求解联系在一起的,但我不会专门讨论数值问题,最多顺带提一下.数值计算的程序设计是一个发展迅猛、引人入胜的领域,目前已出版了许多相关图书.不过,从20 世纪60 年代初期开始,计算机更多地用于处理那些很少出现数值的问题,此时用到的是计算机的决策能力而非算术运算能力.非数值问题中也会用到一些加法和减法,但基本不需要乘法和除法.当然,即便是主要关注数值计算的程序设计的人也可以在非数值方法的学习中受益,因为数值程序中也会用到非数值方法. 非数值分析的研究成果散见于大量科技刊物中.通过研究,我从大量文献中提炼出了一些可以用于多种编程场合的最基本的方法,并尝试着将其组织为一套“理论”.同时,我还展示了如何应用这一理论解决大量的实际问题. 当然,“非数值分析”是一种太过负面的否定性的提法,使用肯定性的描述语来刻画这一研究领域要好得多.“信息处理”对于我们的内容而言过于宽泛,“程序设计技术”又显得太狭窄了,因此我提出用算法分析来概括本套丛书的主题比较恰当,这一名称暗示我们将探讨“与特定计算机算法的性质有关的理论”.


网友评论