首页计算机书籍程序设计《算法分析与设计以大学生程序设计竞赛为例》赵端阳
吾之本一

文档

146

关注

0

好评

0
PDF

《算法分析与设计以大学生程序设计竞赛为例》赵端阳

阅读 963 下载 0 大小 23.73M 总页数 347 页 2022-11-18 分享
价格:¥ 10.00
下载文档
/ 347
全屏查看
《算法分析与设计以大学生程序设计竞赛为例》赵端阳
还有 347 页未读 ,您可以 继续阅读 或 下载文档
1、本文档共计 347 页,下载后文档不带www.pdfdz.com水印,支持完整阅读内容。
2、古籍基本都为PDF扫描版,所以文档不支持编辑功能,即不支持文档内文字的复制粘贴。
3、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
4、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
5、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。
算法分析与设计一以大学生程序设计竞赛为例法。欧几里得算法又称辗转相除法,用于计算两个正整数m,n的最大公约数。步骤1:如果mn且m mod n不为0)。算法1.1欧几里得算法int ged(int m,int n)if (mn),令r是m/n的余数,经过辗转相除,从而使m和n变小。如此往复进行,最终使r为0,算法终止。2.确定性(Definiteness)算法的每一步骤必须有确切的定义。算法的每一个步骤,都有精确的定义。要执行的每一个动作都是清晰的、无歧义的。在算法1,1中,如果m和n是无理数,那么m除以n的余数是什么,就没有一个明确的界定。欧几里得算法规定了m和n都是正整数,从而保证了算法能够确定的执行。3.输入(Input)一个算法有0个或多个输入,作为算法开始执行前的初始值,或初始状态。所谓0个输第1章算法概述入是指算法本身给出了初始条件。算法1.1中有两个输人m和n,都是正整数。4.输出项(Output)一个算法有一个或多个输出,以反映对输人数据加工后的结果。没有输出的算法是笔无意义的。算法1,1中的输出是输人m和n的最大公约数。5,可行性(Effectiveness)在有限时间内完成计算过程。算法1.1用一个正整数来除另一个正整数,判断一个整数是否为0以及整数赋值等,这些运算都是可行的。因为整数可以用有限的方式表示,所以至少存在一种方法来完成一个整数除以另一个整数的运算。必须注意到,在实际应用中,有限性的限制是不够的。一个实用的算法,不仅要求步骤有限,同时要求运行这些步骤所花费的时间是人们可以接受的。如果一个算法需要执行数万亿亿计数的运算步骤,从理论上说,它是有限的,最终可以结束。但是,以当代计算机每秒数亿次的运算速度,也必须运行数百年以上,这是人们所无法接受的,因而它是不实用的算法。1.1.2算法的设计算法设计的整个过程,可以包含对问题需求的说明、数学模型的拟制、算法的详细设计、算法的正确性验证、算法的实现、算法分析、程序测试和文档资料的编制。计算机科学家尼克劳斯·沃思曾著过一本著名的书《数据结构十算法=程序》,可见算法在计算机科学界与计算机应用界的地位。同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择适用算法和改进算法。一个算法的评价主要从时间复杂性和空间复杂性来考虑。算法可大致分为基本算法、数据结构的算法、数论与代数算法、计算几何的算法、图论的算法、动态规划以及数值分析、加密算法、排序算法、检索算法、随机化算法和并行算法。算法大致分为以下三类。(1)有限的、确定性算法。这类算法在有限的一段时间内终止。它们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。(2)有限的、非确定算法。这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。(3)无限的算法。指那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定地定义终止条件。经典的算法有很多,这里主要列举以下算法。1,穷举搜索法穷举搜索法(Exhaustive Search Algorithm)是对可能是解的众多候选解按某种顺序进
返回顶部