清华大学数据结构课件CHAP严蔚敏--(精选)公开课件.pptVIP

清华大学数据结构课件CHAP严蔚敏--(精选)公开课件.ppt

  1. 1、本文档共85页,可阅读全部内容。
  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文档。上传文档
查看更多
知 识 点 数据结构中常用的基本概念和术语 算法描述和分析方法 难 点 算法复杂性的分析方法 要 求 了解数据的逻辑结构和物理结构,算法的基本概念,它们对于程序设计的重要性以及相互关系 掌握算法复杂性的概念及分析方法 算法的描述 本书将采用类C语言描述算法 类C语言是标准C语言的简化 ,与标准C语言的主要区别如下: 1. 所有算法都以如下所示的函数形式表示: 函数类型 函数名(参数表) { 语句序列? } 类C语言的形参书写比标准C语言简单,如,int xyz(int a,int b,int c)可以简单写成int xyz (int a,b,c) 类C与标准C的主要区别(续) 2. 局部量的说明可以省略,必要时对其作用给予注释 。 3. 不含go to语句,增加一个出错处理语句error(字符串),其功能是终止算法的执行并给出表示出错信息的字符串。 4. 输入/输出语句有: 输入语句 scanf([格式串]),变量1,…,变量N); 输出语句 printf([格式串]),变量1,…,变量N); 通常省略格式串 。 算法复杂性的分析 算法的复杂性包括时间复杂性(所需运算时间)和空间复杂性(所占存储空间),重点是时间复杂性 。 一个算法所需的运算时间通常与所解决问题的规模大小有关。 用n 表示问题规模的量 ,把算法运行所需的时间T表示为n的函数,记为T(n)。 不同的T(n)算法,当n增长时,运算时间增长的快慢很不相同。 一个算法所需的执行时间就是该算法中所有语句执行次数之和。 渐进时间复杂性:当n逐渐增大时T(n)的极限情况,一般简称为时间复杂性。 时间复杂性常用数量级的形式来表示,记作T(n)=O(f(n))。 其中,大写字母O为Order(数量级)的字头,f(n)为函数形式,如T(n)=O(n2)。 当T(n)为多项式时,可只取其最高次幂项,且它的系数也可略去不写。 一般地,对于足够大的n,常用的时间复杂性存在以下顺序: O(1) O(logn) O(n) O(n*logn) O(n2) O(n3)…O(2n)O(3n)…O(n!) 其中,O(1)为常数数量级,即算法的时间复杂性与输入规模n无关。 算法的运行时间往往还与具体输入的数据有关,通常用以下两种方法来确定一个算法的运算时间: 平均时间复杂性:研究同样的n值时各种可能的输入,取它们运算时间的平均值。 2. 最坏时间复杂性:研究各种输入中运算最慢的一种情况下的运算时间。 计算下面交换i和j内容程序段的时间复杂性。 temp=i; i=j; j=temp; 解:以上三条单个语句均执行1次,该程序段的执行时间是一个与问题n无关的常数,因此,算法的时间复杂度为常数阶,记作T(n)=O(1). 计算下面求累加和程序段的时间复杂性 (1) sum=0; (一次) (2) for(i=1;i=n;i++) (n次 ) (3) for(j=1;j=n;j++) (n2次 ) (4) sum++; (n2次 ) 解:T(n)=2n2+n+1 =O(n2) QUICK QUIZ(1) 一、名词解释 数据 数据项 数据元素 数据结构 数据逻辑结构 数据物理结构 算法 算法的时间复杂性 二、简答 1. 算法分析的目的是什么? 2. 什么是算法的最坏和平均时间复杂性? 三、分析下列算法的时间复杂性: 1.sum=0; for (i=1;i=n;i++) { sum=sum+i; } 2.i=1; while(i=n) i=i*10; 1*10 3.sum=0; for(i=0;in;i++) for(j=0;jn;j++) sum=sum+Array[i][j]; 一、名词解释 数据:就是一切能够由计算机接受和处理的对象。 数据项:是数据的不可分割的最小单位,在有些场合下,数据项又称为字段或域。 数据元素:是数据的基本单位,在程序中作为一个整体加以考虑和处理,也

文档评论(0)

小红帽 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档