.数据结构第一章.pptVIP

  1. 1、本文档共19页,可阅读全部内容。
  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语言版》严蔚敏、吴伟民 -----清华大学出版社 主要讨论的问题:数据结构讨论的范畴;一些基本概念;算法与和算法的衡量。 例2.阅读下列算法: int sum(int n) { int i,s ; i=1;s=0; while (i=n) { s=s+i; i=i+1;} return s; } (1)该算法中赋值语句执行了 次; (2)该算法的时间复杂度是T(n)= ; (3)该算法的功能 。 例3. i=1; j=n; x=r[1]; while ( ij ) { while (ij r[j] =x) j--; r[i]=r[j]; while (ij r[i] =x) i++; r[i]=r[j]; } r[j]=x; 上述程序段的时间复杂度为: A.O(n) B.O(n2) C.O(1) D.O(nlog2n) * 武汉工程大学计算机系 吕品 E-mail:lpwhict@163. com 习题:课堂习题、课后作业。 第一章 绪论 .数值计算的程序设计问题(简单). .非数值计算的程序设计问题(复杂). §1.1什么是数据结构 .回忆:写程序的过程. .数据结构:问题的数学模型. .求一组整数的最大值. . 计算机与人下棋. . 多叉路口交通灯管理. (线性结构) (层次结构) (网状结构) (树结构) (图结构) . 非数值计算问题的数学模型不再是数学方程. (表结构) .数据结构讨论的范畴: 描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中的表示和实现. .注意数据结构一词处在不同上下文中的含义. §1.2基本概念 .数据:所有能被计算机处理的符号的集合. .数据元素:数据中的一个“个体”,数据结构中讨论 的基本单位 . .问题:  已知数据和数据之间的关系的条件下,在数据结构中如何表达非数值计算的数学模型? .数据的逻辑结构  数据元素间抽象化的相互关系(简称为数据结构). .问题:  已知数据的逻辑结构,如何在计算机中表示数据的逻辑结构? .数据的存储(物理)结构  数据元素及其关系在计算机存储器中的存储方式. .在数据模型上的操作  算法:处理问题的方法. .数据结构讨论的范畴: 描述现实世界实体的数学模型(非数值计算)及其上的操作在计算机中的表示和实现. .数据结构讨论三方面的问题: 数学模型 --数据的逻辑结构 数学模型的操作 --算法 数学模型计算机中的表示和实现--数据的存储结构 . 问题: 刚才讲到的表,树,图是逻辑结构还是存储结构? §1.3算法与算法分析 .算法:对特定问题求解步骤的一种描述,是指令的有限序列. .任一算法必须满足如下准则: 性质1:有穷性. 性质2:确定性. 性质3: 可行性. 性质4:输入. 性质5:输出. 算法如何描述与实现 描述---可采用自然语言、数学语言或约定的符号语言. 实现---必须借助程序设计语言提供的数据类型及其运算. 本课的描述---采用类C语言. 思考:算法与程序的区别与联系? 算法的评价准则(首先算法必须是“正确”的) a.执行算法所耗费的时间.(效率要高) b.执行算法所耗费的存储空间.(主要考虑辅存空间;低存储要求) c.算法的可读性、易维护性要好.(易于理 解,易于编码,易于调试) 评价算法的效率往往采用事前估计法. .事前估计法是一种粗略估计的数学方法,用某个函数表达时间量度. .常见的函数形式T(n)=O(f(n)),它代表 n→∞时的时间复杂度T(n)的数量级(阶).这就是渐近时间复杂度表示法. .事前估计法一般步骤:  a.找出算法中最关键的操作. b.计算这些最关键操作的执行次数. c.用某一函数表达执行次数.  d.将该函数的最高次幂项(若有系数则要去掉)直接填入符号O()的括号内. 举例 例1.设n是偶数,试计算运行下列程序段后m的值并给出该程序段的时间复杂度. m=0; for(int i=1;i=n;i++)  for(int j=2*i;j=n;j++)    m=m+1; 例4.该算法的时间复杂度是多少?请用大O表示 . void s

文档评论(0)

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

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

1亿VIP精品文档

相关文档