算法导论英文
㈠ 什么是算法,都什么,举个例子,谢谢
根据我个人的理解:
算法就是解决问题的具体的方法和步骤,所以具有以下性质:
1、有穷性: 一个算法必须保证执行有限步之后结束(如果步骤无限,问题就无法解决)
2、确切性:步骤必须明确,说清楚做什么。
3、输入:即解决问题前我们所掌握的条件。
4、输出:输出即我们需要得到的答案。
5、可行性:逻辑不能错误,步骤必须有限,必须得到结果。
算法通俗的讲:就是解决问题的方法和步骤。在计算机发明之前便已经存在。只不过在计算机发明后,其应用变得更为广泛。通过简单的算法,利用电脑的计算速度,可以让问题变得简单。
譬如:计算 1×2×3×4。。。。×999999999×1000000000
如果人为计算,可想而知,即使你用N卡车的纸张都很难计算出来,即使算出来了,也很难保证其准确性。
如果用VB算法:
dim a as integer
a=1
For i =1 to 1000000000
a=a*i
next i
input a
就这样,简单的算法,通过计算机强大的计算能力,问题就解决了。
关于这段算法的解释:i每乘一次,其数值都会增大1,一直乘到1000000000,这样,就将从1到1000000000的每个数都乘了。而且每乘一次,就将结束赋给a,这样,a就代表了前面的相乘的所有结果,一直乘到1000000000。最后得到的a,就是我们想要的。
〓以下是网络复制过来的,如果你有足够耐心,可以参考一下。
算法(Algorithm)是一系列解决问题的清晰指令,也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法可以理解为有基本运算及规定的运算顺序所构成的完整的解题步骤。或者看成按照要求设计好的有限的确切的计算序列,并且这样的步骤和序列可以解决一类问题。
一个算法应该具有以下五个重要的特征:
1、有穷性: 一个算法必须保证执行有限步之后结束;
2、确切性: 算法的每一步骤必须有确切的定义;
3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;
4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;
5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。
计算机科学家尼克劳斯-沃思曾着过一本着名的书《数据结构十算法= 程序》,可见算法在计算机科学界与计算机应用界的地位。
[编辑本段]算法的复杂度
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。
时间复杂度
算法的时间复杂度是指算法需要消耗的时间资源。一般来说,计算机算法是问题规模n 的函数f(n),算法的时间复杂度也因此记做
T(n)=Ο(f(n))
因此,问题的规模n 越大,算法执行的时间的增长率与f(n) 的增长率正相关,称作渐进时间复杂度(Asymptotic Time Complexity)。
空间复杂度
算法的空间复杂度是指算法需要消耗的空间资源。其计算和表示方法与时间复杂度类似,一般都用复杂度的渐近性来表示。同时间复杂度相比,空间复杂度的分析要简单得多。
详见网络词条"算法复杂度"
[编辑本段]算法设计与分析的基本方法
1.递推法
递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。它把问题分成若干步,找出相邻几步的关系,从而达到目的,此方法称为递推法。
2.递归
递归指的是一个过程:函数不断引用自身,直到引用的对象已知
3.穷举搜索法
穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从众找出那些符合要求的候选解作为问题的解。
4.贪婪法
贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪婪法不要回溯。
5.分治法
把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
6.动态规划法
动态规划是一种在数学和计算机科学中使用的,用于求解包含重叠子问题的最优化问题的方法。其基本思想是,将原问题分解为相似的子问题,在求解的过程中通过子问题的解求出原问题的解。动态规划的思想是多种算法的基础,被广泛应用于计算机科学和工程领域。
7.迭代法
迭代是数值分析中通过从一个初始估计出发寻找一系列近似解来解决问题(一般是解方程或者方程组)的过程,为实现这一过程所使用的方法统称为迭代法。
[编辑本段]算法分类
算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法、并行算法。
[编辑本段]举例
经典的算法有很多,如:"欧几里德算法"。
[编辑本段]算法经典专着
目前市面上有许多论述算法的书籍,其中最着名的便是《计算机程序设计艺术》(The Art Of Computer Programming) 以及《算法导论》(Introction To Algorithms)。
[编辑本段]算法的历史
“算法”即算法的大陆中文名称出自《周髀算经》;而英文名称Algorithm 来自于9世纪波斯数学家al-Khwarizmi,因为al-Khwarizmi在数学上提出了算法这个概念。“算法”原为"algorism",意思是阿拉伯数字的运算法则,在18世纪演变为"algorithm"。欧几里得算法被人们认为是史上第一个算法。 第一次编写程序是Ada Byron于1842年为巴贝奇分析机编写求解解伯努利方程的程序,因此Ada Byron被大多数人认为是世界上第一位程序员。因为查尔斯·巴贝奇(Charles Babbage)未能完成他的巴贝奇分析机,这个算法未能在巴贝奇分析机上执行。 因为"well-defined procere"缺少数学上精确的定义,19世纪和20世纪早期的数学家、逻辑学家在定义算法上出现了困难。20世纪的英国数学家图灵提出了着名的图灵论题,并提出一种假想的计算机的抽象模型,这个模型被称为图灵机。图灵机的出现解决了算法定义的难题,图灵的思想对算法的发展起到了重要作用的。
㈡ 亲们算法导论代码英文注释怎么办
英文注释基本上和代码上面的李洞滑中文解释意思一样,这本书只需要一点离散数学的知识,书的最后面有相关的哪腊知识,要求不是很高也不难,这本书很经典,楼主好好攻颤握读吧,目前只有第二版有中文的,第三版没有中文翻译。如果不想看算法导论,可以看看严蔚敏的数据结构,但是教条重了点。但是算法导论还有个好处就是这本书的思考题很有价值,提升功力很不错,楼主自己权衡吧。
㈢ 排列组合中的公式P(n,k) C(n,k) (都是n上k下)用英语怎么写怎么读
等于5×4×3(一共乘了三个数,等于上边数字的数量),然后再除以3×2×1(上边数的阶乘)。 P是排列,跟顺序有关,C是组合跟顺序无关,所以还要除以可能出现的重复次数。 拓展资料: 1、排列的定义:从n个不同元素中,任取m(m≤n,m与n均为自然数,下同)个元素按照一定的顺序排成一列,叫做从n个不同姿让元素中取出m个乱册晌元素的一个排列;从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号 A(n,m)表示。 此外规定0!=1(n!表示n(n-1)(n-2)...1,也就是6!=6x5x4x3x2x1 2、组合的定义:从哗锋n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数。用符号 C(n,m) 表示。计算公式:;C(n,m)=C(n,n-m)。(n≥m)
㈣ 算法导论的英文名字是
《Introction to Algorithms》
㈤ 算法导论是看英文版还是中文版
建议读中文的。
分析:
1.《算法导论》是一本可谓“面面俱到”的书,其中对算法的证明占了很大的比重,这在一般的算法书中并不多见,也是它严谨性的体现。中英文在理解上的区别也就在于如何引出这个算法、算法为什么正确上。但是这些证明虽然有重要意义,但是在实用价值上一般比不上算法本身。我自己在学习算法的时候都是先了解算法思想,再了解算法执行过程,再记住代码,然后做题,最后再来回顾导引和证明,即先知其然,再知其所以然。不能光知其然,那样无法掌握思想,思想才是精髓;而一上来就直奔证明,又缺乏学习效率。(也可能这只是我个人的特点)就算法执行过程本身,中英文都一样,而且由于伪代码本身并无区别,所以先读中文,以掌握算法。
2.当参加国际比赛的时候,题目都是用英文描述;当对算法的研究再上一个层次的时候,国内的译材已经不能够满足学习需要了。要想进步,达到高层次的领域,实现“出色”和“领先”,就一定要大量研读外国文献。这要求英语必须要好。
综上,我的建议是:读中文版《算法导论》,掌握算法,再看解释,理解它,才能更好地运用。学好英语,为达到更高的层次做准备。《算法导论》内容非常丰富,应该读好几遍,到时候再看英文的也不迟。
㈥ 算法导论这类书有必要看英文版吗
书籍推荐看原版。举个例子:第二版16-4,英文原版“If there is no such slot, assign task aj to the latestof the as yet unfilled slots.”,中文翻译“如果不存在这样的槽,则将任务aj赋予一个还未被占的最近的槽。”首先,latest应该是“最后的”,中文翻译直接把意思变成相反的了,不能理解。其次,中文翻译“槽”、“赋予”等等也不算准确。译可能会出错、造成歧义。阅读原文的能力会越练越好,最终提高阅读效率,有利无害。全文:Consider the following algorithm for the problem from Section 16.5 of schelingunit-time tasks with deadlines and penalties. Let all n time slots be initially empty,where time slot i is the unit-length slot of time that finishes at time i. We considerthe tasks in order of monotonically decreasing penalty. When considering task aj ,if there exists a time slot at or before aj ’s deadline dj that is still empty, assign ajto the latest such slot, filling it. If there is no such slot, assign task aj to the latest
of the as yet unfilled slots.但是中国的翻译版就可能将其中的一些词的意思更改,从而导致有些知识跟原着的不一样,会导致对知识的理解不一样,更会影响学习者对知识的理解与运用,但是看中国翻译版也有好处,好处是节省学习者理解的时间,从而节省一定的时间,去应用知识与定理。但看中国版的之前一定要了解一下这个版本的口碑和了解一下其中的内容是否和原版有太多的差别,如果有,建议大家换一本别的。其实看中国版和原版都无所谓,重要的是你踏踏实实的去看去写代码才是正道。强调一点Taocp我认为应该2个版混着看,因为太难懂了。
㈦ 计算机科学的“两本圣经”是什么
科曼的《算法导论》和高德纳的《计算机程序设计艺术》被称为计算机科学的两本经典着作,被业界戏称为“两本圣经”
科曼的《算法导论》这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。
《算法导论》书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。
高德纳的《计算机程序设计艺术》这本书结合大量数学知识,分析不同应用领域中的各种算法,研究算法的复杂性,即算法的时间、空间效率,探讨各种适用算法等,其理论和实践价值得到了全世界计算机工作者的公认。
(7)算法导论英文扩展阅读
《算法导论》自第一版出版以来,已经成为世界范围内广泛使用的大学教材和专业人誉宴迅员的标准参考手册。本书全面论述了算法的内容,从一定深度上涵盖了算法的诸多方面,同时其讲授和分析方法又兼顾了各个层次读者的接受能力。
《算法导论》所有算法都是用英文和伪码描述,使具备初步编程经验的人也可读懂。全书讲解通俗易懂,且不失深度和数学上的严谨性。第二版增加了新的章节,如算法作用、概率分析与随机算法、线性编程等,几乎对第一版的各个部分都庆此作了大量修订。
《计算机程序设计艺术》书中引入的许多术语、得到的许多结论都变成了计算机领域的标准术语和被广泛引用的结果。另外,作者对有关领域的科学发展史也有深入研究,因此本书介绍众多研究成果的同时,也对其历史渊源和发展过程做了很好的介绍,这种特色在全球科学着作中是不多见的。
参考资料网络--计算机科学
网络--计祥慧算机程序设计艺术
网络--算法导论
㈧ 算法导论是看英文版还是中文版
建议读中文的。分析:
1、《算法导论》是一本可谓面面俱到的书,其中对算法的证明占了很大的比重,这在一般的算法书中并不多见,也是悄局它严谨性启运睁的体现。中英文在理解上的区别也就在于如何引出这个算法、算法为什么正确上。但是这些证明虽然有重要意义,但是在实用价值上一般比不上算法本身。
2、当参加国际比赛的时候,题目都是用英文描述。当对算法的研究再上一个层次的时候,国内的译材悄岁已经不能够满足学习需要了。要想进步,达到高层次的领域,实现出色和领先,就一定要大量研读外国文献。这要求英语必须要好。综上,我的建议是:读中文版《算法导论》,掌握算法,再看解释,理解它,才能更好地运用。
㈨ 计算机专业,英语书籍推荐
我猜你是想看一些计算机方面的英文经典教材。
《The art of computer programming》,作者是Donald.E.Knuth,这明液本书被誉为“计算机领域激橘物的荷马史诗”
《算法导论》,这本书被誉为“计算机算法圣经”
《Data struture&Algorithm Analysis in C(second edition)》这本书被世界500多所大学选为教材
希望对你有帮助伍模