[文学研究]Course6-数据结构概论.pptVIP

  1. 1、本文档共51页,可阅读全部内容。
  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文档。上传文档
查看更多
[文学研究]Course6-数据结构概论

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 算法复杂性分析 算法分析感兴趣的不是具体的资源占用量,而是与具体的平台无关、具体的输入实例无关,且随输入规模增长的值是可预测的 与问题的规模之间的关系,用一定“规模(size)”的数据作为输入时程序运行所需的“基本操作(basic operation) ” 数来描述时间效率。 譬如,如果数据规模n和运行时间t 间存在一个线性的关系,t1= cn,那么数据规模增加5倍后,运行时间也相应地增加同样的倍数,即n2 = 5n, 则t2 = 5t1。 同理,如果t1 = log2n,则 n 的规模加倍意味着时间增加一个单位,即,n2 = 2n, t2 = log 2 ( 2n) = log2n+ 1 = t1 + 1 完成一个“基本操作”所需的时间应该与具体的被操作的数无关 算法的渐进分析 (asymptotic analysis) 简称算法分析 由于算法的复杂性与其所求解的问题规模直接有关,因此通常将问题规模 n 作为一个参照量,求算法的时空开销和 n 的关系 一般这种函数关系都相当复杂,计算时只考虑可以显著影响函数量级的部分,即结果为原函数的一个近似值 对资源开销的一种不精确估计,提供对于算法资源开销进行评估的简单化模型 算法的渐进分析 算法的渐进分析就是要估计,当数据规模 n逐步增大时,资源开销f(n)的增长趋势 得到如此精确的一个界相对比较费时费力,且没有必要 从数量级大小的比较来考虑,当n增大到一定值以后,资源开销的计算公式中影响最大的就是n的幂次最高的项,其他的常数项和低幂次项都是可以忽略的 算法渐进分析:大O表式法 假设f 和g为从自然数到非负实数集的两个函数  定义1:如果存在正数c和N,使得对任意的n?N,都有 f(n) ? cg(n), 则称f(n)在集合O(g(n))中,或简称f(n)是O(g(n))的。 该定义说明了函数 f 和 g 之间的关系:函数g(n) 是函数 f(n) 取值的上限(upper bound),或说函数f的增长最终至多趋同于g的增长 因此,大O表示法提供了一种表达函数增长率上限的方法。 一个函数增长率的上限可能不止一个。譬如,一个在集合O(n)中的函数也一定在集合O(n2)中,同时也在集合O(n3)中,等等。大O表示法给出了所有上限中最“紧”(也即最小)的那个上限 大O表式法的性质 若符号a是不依赖于n的任意常数 如果函数 f(n) 是O(g(n))的,g(n)是O(h(n)),那么f(n)是O(h(n))的 如果函数f(n)是O(h(n))的,g(n)是O(h(n)),那么f(n) + g(n) 是O(h(n))的 函数ank是O(nk)的 对任何正数 j 而言,函数nk 是O(nk+j)的 若f(n) = cg(n),则f(n) 是O(g(n))的 对于任何正数a和b,且b?1,函数logan 是O(logbn)的。即,任何对数函数无论底数为何,都具有相同的增长率 对任何正数 a?1,都有logan 是O(lg n)的,其中lg n = log2n 大O表示法的运算规则 单位时间 简单布尔或算术运算 简单I/O 函数返回 加法规则: f1(n)+f2(n)=O(max(f1(n), f2(n))) 顺序结构,if 结构,switch结构 乘法规则: f1 (n)·f2 (n) =O(f1(n)·f2 (n)) for, while, do-while结构 #define n 自然数 MATRIXMLT(A,B,C) float A[ ][n],B[ ] [n],C [ ][n]; {int i,j,k; (1) for ( i=0;in;i++) (2) for (j=0;jn;j++) (3) {C [i][j]=0 ; (4) for (k=0;kn;k++) (5) C [i][j]= C [i][j]+ A [i][k]*B [k][j] ; } }/* MATRIXMLT */ 例:求两个 n 阶方阵的乘积 C=A×

文档评论(0)

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

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

1亿VIP精品文档

相关文档