网站大量收购闲置独家精品文档,联系QQ:2885784924

第2章算法效率分析基础.pptxVIP

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

1第2章算法效率分析基础一个问题往往有多个算法,应当分析算法的品性怎样评价一个算法?涉及的概念:问题的规模(大小)、基本操作、计算复杂度、复杂度的量级、上下界掌握循坏算法与递归算法的复杂度分析方法

2正确性工作量空间用量简单性最优型

3

4顺序查找:SequentialSearch(A[0..n-1],x)//输入:数组A[0..n-1],和查找关键字x//输出:返回第一个匹配x的元素下标//如果没有匹配的,返回-1i=0;whileinandA[i]≠xdoi=i+1;Ifinthenreturnielsereturn-1;什么是基本运算什么是最坏情况什么是最好情况在表A中查找关键字x

5

6

7

82.1分析框架如何评价时间效率?2.1.1输入规模的度量一个事实:问题规模越大,算法运行时间越长。将算法输入规模n为时间效率的参数。选择哪个(些)参数作为输入规模?

9一个算法好不好体现在运行该算法所需要的计算机资源的多少上所需资源越少,该算法越好;计算机最重要的资源是时间和空间算法分析对算法利用这两种资源的效率做研究时间效率:指出正在讨论的算法运行得有多快;空间效率:关心算法需要的额外空间。研究实验告诉我们,对于大多数问题来说,我们在速度上能够取得的进展要远大于在空间上的进展,所以我们把主要精力集中在时间效率上。

102.1.2运行时间的度量单位可以采用秒,分,小时吗?可以统计算法每一步的操作次数吗?一般的做法:把基本操作(最重要的操作)次数作为算法运行时间的度量单位。思考下面算法的重要操作:排序矩阵乘法

11建立一个算法时间效率的分析框架对于输入规模为n的算法统计基本操作执行次数C(n),来对其效率进行度量。在某个特定计算机上的某个算法程序的运行时间T(n)≈copC(n)基本操作的执行时间基本操作次数

12对下面的三个时间效率函数表达式,哪一个效率高?C1(n)=nC2(n)=n3C3(n)=10nn=11110n=228100n=33271000n=非常大结论:1随n的递增,不同函数增幅不同2某些函数在大规模时增幅显著,函数可以表示增幅的特点3我们希望选择大规模时,时间效率增幅小的算法

132.1.3增长次数(增长幅度)特别考虑大规模的输入要强调执行次数的增长次数呢?这是因为小规模输入在运行时间上差别不足以将高效的算法和低效的算法法区分开来。

14图1-2各种函数的曲线

152.1.4算法的最优、最差和平均效率一个算法的最差效率是指当输入规模为n时,算法的最坏情况下的效率。这时,相对于其他规模为n的输入,该算法的运行时间最长。为什么要考虑最坏效率?提供了对任何规模为n的实例,算法运行的上界Cworst(n)

16一个算法的最优效率是指当输入规模为n时,算法在最优情况下的效率。这时,与其它规模为n的输入相比,该算法运行得最快。然而,无论是最差效率分析还是最优效率分析都不能提供一种必要的信息:在“典型”或者“随机”输入的情况下,一个算法会具有什么样的行为。这正是平均效率试图提供给我们信息。

17算法计算复杂度的定义

182.1.5分析框架概要算法的时间效率和空间效率都用输入规模的函数进行度量。我们用算法基本操作的执行次数来度量算时间效率。通过计算算法消耗的额外存储单元的数量来度量空间效率。在输入规模相同的情况下,有些算法的效率会的显著差异。对于这样的算法,我们需要区分最差效率,平均效率和最优效率。本框架主要关心,当算法的输入规模趋向于无限大的时候,其运行时间(消耗的额外空间)函数的增长次数。

19复杂度函数的阶2.2渐进符号和基本效率类型

20

21例题

22

23注意上面3个符号O,θ,Ω称为渐进符号在问题的求解规模充分大的时候才成立。如,N32N,只有在Nc的时候才成立,其中c是方程N3=2N的解。当Nc时,前者反而有效。

242.2.5渐进符号的有用特性定理如果t1(n)∈O(g1(n))并且t2(n)∈O(g2(n)),则t1(n)+t2(n)∈O(max{g1(n),g2(n)})(对于?和Θ符号,类似的断言也为真)对于两个

文档评论(0)

hongbing2021 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档