第1章 绪论05711.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2)事前分析估算的方法:求出该算法的一个时间界限函数。 算法运行所消耗的时间取决于: a)依据的算法选用何种策略; b)问题的规模; c)书写程序的语言; d)编译程序所产生的机器代码的质量; e)机器执行指令的速度。 二、算法的时间复杂度 原操作:基本操作。 算法的时间度量:原操作重复执行的次数。 算法的渐近时间复杂度:原操作重复执行的次数是问题规模n的某个函数f(n) T(n)=O(f(n)) 频度:原操作重复执行的次数。 常见的时间复杂度有: O(1) 常量阶 O(n) 线性阶 O(n2) 平方阶 O(n3) 立方阶 O(log n) 对数阶 O(2n) 指数阶 六种常用计算算法时间的多项式的关系为: O(1)O(logn)O(n)O(nlogn)O(n2)O(n3) 三、求算法时间复杂度举例 例1{++x; s=0;} 将++x看成是基本操作,则语句频度为1,即时间复杂度为O(1),即常量阶。 例2 for(i=1; i=n; ++i) {++x; s+=x;} 将++x看成是基本操作,语句频度为n,其时间复杂度为为O(n),即时间复杂度为线性阶。 例3 for(i=1; i=n; ++i)    for(j=1; j=n; ++j) {++x; s+=x;} 将++x看成是基本操作,语句频度 为n2,其时间复杂度为O(n2),即 时间复杂度为平方阶。 在难以精确计算基本操作执行次数的情况 下,只需求出它关于n的增长率或阶即可。 例4 for(i=2;i=n;++i) for(j=2;j=i-1;++j) {++x; a[i][j]=x;} 将++x看成是基本操作,语句频度为(n-1)(n- 1)/2,其时间复杂度可近似为O(n2),即它关 于n的增长率或阶。 当基本操作执行次数随问题的输入数据集变化时,计算平均时间复杂度或最坏情况下的上界。 例5 起泡排序算法 void bubble_sort(int a[ ], int n) {for (i=n-1,change=TRUE; i=1 change; --i ) { change = FALSE; for(j = 0; j i; j++) if (a[j]a[j+1]) {a[j]?a[j+1];change=TRUE;} } }//bubble_sort 分析: 当a中初始序列为自小至大有序,基本操作的执行次数是0; 当a中初始序列为自大至小有序,基本操作的执行次数是 n(n-1)/2; 分析最坏情况以估算算法执行时间的一个上界,即O(n2)。 图1.7 常见函数的增长率 一般情况下,随n的增大,T(n)增长 较慢的算法为最优的算法。从中我们 应该选择使用多项式阶O(nk)的算 法, 而避免使用指数阶的算法。 1.4.4算法的存储空间需求 一、空间复杂度:所需存储空间是问题规模n的某个函数f(n) S(n)=O(f(n)) 二、算法执行过程中所需的最大空间  估算方法:输入数据所占空间+程序所占空间+辅助变量所占空间。 本章内容复习 有关数据结构的基本概念和术语 抽象数据类型ADT的表示与实现 类C语言的书写规范 算法五个要素的确切含义 掌握估算时间复杂度的方法,了解空间复杂度的度量方法。 习题 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现? 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成( )。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 (2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。 A.存储结构 B.存储实现 C.逻辑结构 D.运算实现 (3)通常要求同一逻辑结构中的所有数

文档评论(0)

锦绣中华 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档