算法的概念文字资料_第1页
算法的概念文字资料_第2页
算法的概念文字资料_第3页
算法的概念文字资料_第4页
算法的概念文字资料_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE7算法的概念算法是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,经过计算机程序的有限次运算,能够得出所要求或期望的终止状态或输出数据。算法常常含有重复的步骤和一些比较或逻辑判断。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。算法的历史“算法”algorithm来自于9世纪波斯数学家比阿勒霍瓦里松的名字al-Khwarimi,比阿勒霍瓦里松在数学上提出了算法这个概念。“算法”原为algorism,意思是阿拉伯数字的运算法则,在18世纪

2、演变为algorithm。第一次编写算法是AdaByron于1842年为巴贝奇分析机编写求解解伯努利方程的程序,因此AdaByron被大多数人认为是世界上第一位程序员。因为巴贝奇CharlesBabbage未能完成他的巴贝奇分析机,这个算法未能在巴贝奇分析机上执行。因为well-defined和NN,则交换M和N,得到余数R0,正确则N即为“最大公约数”,否则下一步,将R赋值给N,重做第一步。用“Basic代码”表示IfMNThenSwaModNM=NN=RLoopPrintR算法设计和分析的基本方法分治法:字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再

3、把子问题分成更小的子问题直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法快速排序,归并排序,傅立叶变换快速傅立叶变换动态规划:动态规划在查找有很多重叠子问题的情况的最优解时有效。它将问题重新组合成子问题。为了避免多次解决这些子问题,它们的结果都逐渐被计算并被保存,从简单的问题直到整个问题都被解决。因此,动态规划保存递归时的结果,因而不会在解决同样的问题时花费时间。贪心法(亦作饕餮法):就是一种在每一步选择中都采取在当前状态下最好/优的选择,从而希望导致结果是最好/优的算法。贪心法可以解决一些最优性问题,如:求图中的最小生成树、求哈夫曼编码

4、对于其他问题,贪心法一般不能得到我们所要求的答案。一旦一个问题可以通过贪心法来解决,那么贪心法一般是解决这个问题的最好办法。由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助算法或者直接解决一些要求结果不特别精确的问题。算法的分类基本算法枚举搜索(深度优先搜索广度优先搜索启发式搜索遗传算法)数据结构的算法数论与代数算法计算几何的算法(凸包算法)图论的算法(哈夫曼编码树的遍历最短路径算法最小生成树算法最小树形图网络流算法匹配算法)动态规划其他(数值分析加密算法排序算法检索算法随机化算法)还可以分成串行算法、并行算法。算法的复杂性算法的复杂性是算法效率的度量,在评价算法性能

5、时,复杂性是一个重要的依据。算法的复杂性的程度与运行该算法所需要的计算机资源的多少有关,所需要的资源越多,表明该算法的复杂性越高;所需要的资源越少,表明该算法的复杂性越低。计算机的资源,最重要的是运算所需的时间和存储程序和数据所需的空间资源,算法的复杂性有时间复杂性和空间复杂性之分。算法在计算机上执行运算,需要一定的存储空间存放描述算法的程序和算法所需的数据,计算机完成运算任务需要一定的时间。根据不同的算法写出的程序放在计算机上运算时,所需要的时间和空间是不同的,算法的复杂性是对算法运算所需时间和空间的一种度量。不同的计算机其运算速度相差很大,在衡量一个算法的复杂性要注意到这一点。对于任意给定

6、的问题,设计出复杂性尽可能低的算法是在设计算法时考虑的一个重要目标。另外,当给定的问题已有多种算法时,选择其中复杂性最低者,是在选用算法时应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。在讨论算法的复杂性时,有两个问题要弄清楚:1一个算法的复杂性用怎样的一个量来表达;2怎样计算一个给定算法的复杂性。找到求解一个问题的算法后,接着就是该算法的实现,至于是否可以找到实现的方法,取决于算法的可计算性和计算的复杂性,该问题是否存在求解算法,能否提供算法所需要的时间资源和空间资源。筛选法求质数质数亦叫作素数,是大于1的自然数,并且除了该数本身和1以外没有其它的

7、数能整除它,如2,3,5,7,11,13,质数有无穷多个。(1)判断143是否为质数。解:Step1:1432不为整数;Step2:1433不为整数;Step3:1434不为整数;Step4:1435不为整数;Step5:1436不为整数;Step6:1437不为整数;Step7:1438不为整数;Step8:1439不为整数;Step9:14310不为整数;Step10:14311=13,143能被11整除;Step11:结论:143不是质数。(2)判断17是否为质数。解:Step1:172不为整数;Step2:173不为整数;Step3:174不为整数;Step4:175不为整数;Step5:176不为整数;Step6:177不为整数;Step7:178不为整数;Step8:179不为整数;Step9:1710不为整数;Step10:1711不为整数;Step11:1712不为整数;Step12:1713不为整数;Step13:1714不为整数;Step14:1715不为整数;Step15:1716不为整数;Step16:结论:17是质数。(3)判断216091是不是质数该题的计算量非常大,我们可以把算法编为程序,由计算机帮我们计算。(4)设计一个算法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论