算法设计及RAM.ppt

  1. 1、本文档共124页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法设计及RAM

1.7 对偶与范式 算法设计的步骤 一、问题的陈述 已知什么,求什么,提附加问题以帮助理解用户的要求 二、模型的拟制 1)为什么要建立模型 计算机解决大而复杂的问题,需要数学模型 2)建模的两条途径 A 寻找最适合这个问题的数学结构 B 借鉴已经解决了的类似问题 3)如何选数学工具表示已知的和要求的量 A 设计人员掌握的数学知识 B 数学结构是否表达方便 C 计算是否简单 4)对不同模型要进行比较,选出最有效的模型 例:货郎担(TSP)问题 设售货员要到五个城市去售货,最后再回到出发的城市。已知从一个城市到其他城市的费用,求总费用最少的路线 解:下面给出称为登山法的算法。 所谓登山法,就是从初始结点出发,满足某些约束条件,一步一步地“登到”终点。 设n阶无向带权完全图G=V,E,W 1)以vi为起点,在其余的n-1个结点中,找出最邻近于vi的结点vj ( vj可能不唯一,但只选一个),形成初级通路vi vj 2)在其余的n-2个城市中找出最邻近于vj的结点vk ,形成初级通路 vi vj vk 如此进行下去,直到将所有结点都扩 充到通路中来,最后得到长度为n的 初级通路就是图中一条哈密顿回路, 将它的权做为图中最短哈密顿回路长 度的近似值。这个算法就是登山法。 此算法的结果与所选择的起点有关。 权为13 从不同结点出发: 1)结点a为起点: 2)结点b为起点: 3)结点c为起点: 4)结点d为起点: 而实际上图中最短哈密顿 回路的长度为12。 即abcda 三、算法的详细设计 1)算法的选择与模型有关。 2)算法详细设计的含义 是指设计求解某个具体问题类的一系列步骤,并且这些步骤可以通过计算机的各种操作来实现 四、算法的正确性 五、算法的实现 1)完善子程序 2)选合适的数据结构 六、算法的分析 分析的理由:1)估计该算法的存储空间和运行空间 2)建立衡量算法优劣的标准 七、程序的测试 1)测试是证实程序是否完成既定任务的手段,并可确定程序的适用范围 2)测试的方法 a)白盒测试 对程序的每个分支进行测试 b)黑盒测试 检查对给定的输入是否有指定的输出 八、文档编制 目的:使别人了解自己的算法和程序 算法的复杂性 符号 符号 符号 2 对数 logn=log2n lgn=log10n lg2=0.301 符号 证明: 符号 logbN=logaN/logab logeN=lnN e=2.71828 logab=1/logba 符号 符号 三、求和 等比级数和调和级数的求和公式 符号 1、衡量算法优劣的标准:时空复杂性 2、问题规模:与问题相关的整数量,它可以衡量问题的规模并表示输入数据量的尺度。也称为问题尺度 3、算法的时间复杂性:处理一个尺度为n的输入,算法所需要的时间,记为T(n) 3、算法的时间复杂性:处理一个尺度为n的输入,算法所需要的执行次数(或执行的步数),记为T(n) 4、渐进时间复杂性: 当问题的尺度增加时,时间复杂性的极限 5、算法的空间复杂性: 处理一个尺度为n的输入,算法所需要的空间数,记为S(n) 6、渐进空间复杂性: 当问题的尺度增加时,空间复杂性的极限 7、时空综合复杂性 T(n)S(n) 8、算法复杂性的阶 处理尺度为n的输入,需要执行Cn2次,则算法复杂性是O(n2),读作“n2阶” 第一种理解方法 第二种理解方法 求复杂性函数阶的极限方法 例如, f(n)=n2/4, g(n)=n2, 则n2/4 =θ(n2) f(n)=logn, g(n)=n, 则logn=O(n) 例1 0.25n2=O(n2) (相差常数因子) 0.73n2≠O(n) (阶不等) n(n+1)/3=O(n2) (相差低阶项) 5n4 – 6n2+1=O(n4) (相差低阶项和常数因子) 等式 0.75n2=O(n)何时成立? 永不成立 等式3n1/2=O(n)在n=9时成立吗? n=9时,虽然两边值相等,但等式不成立 例2: 60n2+5n+1 60n2+5n+1 ≤ 60n2+5n2+n2 =66n2 对于n ≥1 所以 60n2+5n+1 =O(n2) 又60n2+5n+1 ≥ 60n2 对于n ≥1 所以 60n2+5n+1 = Ω(n2) 综上 60n2+5n+1 = Θ(n2) 例4: 1+2+…+n 1+2+…+n ≤ n+n+…+n =n2

文档评论(0)

wnqwwy20 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档