- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[reviewpoints参考答案1
1、什么是基本运算? 什么是算法的时间复杂性(度)?什么是算法的渐近时间复杂性?答:基本运算是解决问题时占支配地位的运算(一般1种,偶尔两种) 算法的时间复杂性(度)是指用输入规模的某个函数来表示算法的基本运算量。算法的渐进时间复杂性是指当输入规模趋向于极限情形时(相当大)的时间复杂性。2、表示渐进时间复杂性的三个记号的具体定义是什么?答:(1). T(n)= O(f(n)):若存在c 0,和正整数n0≥1,使得当n≥n0时, 总有 T(n)≤c*f(n)。 (给出了算法时间复杂度的上界,不可能比c*f(n)更大) (2). T(n)=Ω(f(n)):若存在c 0,和正整数n0≥1,使得当n≥n0时, 存在无穷多个n ,使得T(n)≥c*f(n)成立。(给出了算法时间复杂度的下界,复杂度不可能比c*f(n)更小) (3).T(n)= Θ(f(n)):若存在c1,c20,和正整数n0≥1,使得当n≥n0时, 总有 T(n)≤c1*f(n), 且有无穷多个n,使得T(n)≥c2*f(n)成立, 即:T(n)= O(f(n))与T(n)=Ω(f(n))都成立。(既给出了算法时间复杂度的上界,也给出了下界)3、什么是最坏情况时间复杂性?什么是平均情况时间复杂性?答:最坏情况时间复杂性是规模为n的所有输入中,基本运算执行次数为最多的时间复杂性。 平均情况时间复杂性是规模为n的所有输入的算法时间复杂度的平均值。4、一般认为什么是算法?什么是计算过程?算法研究有哪几个主要步骤?主要从哪几个方面评价算法?答:一般认为,算法是由若干条指令组成的有穷序列,有五个特性a.确定性(无二义)b.能行性(每条指令能够执行)c.输入 d.输出 e.有穷性(每条指令执行的次数有穷)只满足前4条而不满足第5条的有穷指令序列通常称之为计算过程。算法研究的主要步骤是1)设计2)表示 3)确认,合法输入和不合法输入的处理 4)分析 5)测试。评价算法的标准有1)正确性 2)健壮性 3)简单性 4)高效性 5)最优性。5、关于多项式时间与指数时间有什么样的结论?答:1. 多项式时间的算法互相之间虽有差距,一般可以接受。 2. 指数量级时间的算法对于较大的n无实用价值。6、主定理的内容是什么?根据主定理的结论,可以获得哪些关于算法改进的启示?答:T(n)=a*T(n/b)+f(n)1)?若有ε?0,?使f(n)=O()?(即f(n)的量级多项式地小于的量级),?则T(n)=?Θ?()。?2)?若f(n)=?Θ()?(即f(n)的量级等于的量级),?则T(n)?=Θ()。?3)?若f(n)=?Θ(),?则T(n)=Θ(?)?3)?若有ε0,?使f(n)=?()?ε+)(aLogbn(即f(n)的量级多项式地大于的量级),?且满足正规性条件:?abLogn存在常数c1,?使得对所有足够大的n,有a*f(n/b)≤c*f(n),?则T(n)=Θ(f(n))。正规性条件的直观含义: 对所有足够大的n,a个子问题的分解准备与再综合所需要的 时间总和,严格小于原问题的分解准备和综合所需要的时间。 因此一般来说,对于时间复杂度满足递归关系 T(n)=a*T(n/b)+f(n)的算法,只需比较f(n)与的量级大小, aLogbn算法的时间复杂度总是与量级大的那个相同(即小的那个可以忽略);若f(n)与的量级相同(或只差), aLogbnnLogk则算法的时间复杂度为f(n)*。主定理对于算法改进得启示在于:1)当T(n)= Θ ()时,即当的量级高于f(n)的量级时,n的量级在算法的时间复杂度中起主导作用。因而此时首先应当考虑使 aLogbnaLogbnaLogb logb a的值变小,而暂时无须考虑如何改善f(n),即此时要考虑减小a (子问题个数)且使b不变(n/b为子问题规模),或增大b(减小子问题规模)而使a不变。也就是说,此时的重点应考虑改进子问题的分解方法,暂不必考虑改进子问题组合时的处理。2)当f(n)的量级高于或等于的量级时,则f(n)的量级在算法的时间复杂度中起主导作用。因而此时首先应当考虑把f(n)的量级往下降,即此时应着重改善子问题组合时的处理方法,减少该部分工作的处理时间f(n)。7、分治法的要领是什么?(分治法可分为哪三个主要步骤?)答:分治法是把一个规模较大的问题分解为若干个规模较小的子问题,这些子问题相互独立且与原问题同类; 首先求出这些子问题的解,然后把这些子问题的解组合起来得到原问题的解。由于子问题与原问题是同类的,故使用分治法很自然地要用到递归。 因此分治法分三步:1 将原问题分解为子问题(Divide)。2 求解子问题(Conquer)。3 组合子问题的解得到原问题的解(Combine)。8、分治法求最大、最小元算法的主要思路是什么?答:当n=
文档评论(0)