数据结构PPT_.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构PPT_

数据结构;课程性质与教学目的;课 程重要性;教学目标;学编程的境界;成绩组成;数据结构课程的形成和发展;数据结构课程的地位;为什么要学数据结构? 数据结构研究什么? 如何分析算法的优劣?;数据结构 ;程序设计的实质是什么?;利用计算机求解问题的一般过程?;数据结构在程序设计中的作用 ;例1 手机电话号码查询问题; 例2:学生成绩管理;例3:“井字棋”的人机对弈 ;例4:地图的着色问题;为什么要学数据结构;数据结构 ;基本概念和术语;2、数据元素(data element);3、数据对象(data object);4、数据结构(data structure);基本概念和术语;数据结构的形式定义;【例】用数据结构如何描述2行3列矩阵:;5、数据的逻辑结构;6、数据的存储结构;顺序存储结构: 借助数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系。 所有元素存放在一片连续的存贮单元中,逻辑上相邻的元素存放到计算机内仍然相邻。;元素n;;1536;关于数据结构中的结构;7、数据类型(data type);9、抽象抽象数据类型 (Abstract Data Type简称ADT) ;抽象数据类型的描述方法;举例——抽象数据类型复数的定义:;GetReal( Z, realPart ) 初始条件:复数已存在。 操作结果:用realPart返回复数Z的实部值。 GetImag( Z, ImagPart ) 初始条件:复数已存在。 操作结果:用ImagPart返回复数Z的虚部值。 Add( z1,z2, sum ) 初始条件:z1,z2是复数。 操作结果:用sum返回两个复数z1,z2的和值。 } ADT Complex 假设: z1和z2是上述定义的复数,则Add(z1,z2,z3)操作的结果将得到z3=z1+z2;抽象数据类型实现示例;数据结构研究什么;数据结构 ;==;算法的基本特征;数据结构与算法的辨证关系;评价算法的优劣;运行时间和存储空间的辩证关系;算法效率的度量方法;2 事前分析估算方法 事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算。? 经过分析,我们发现,一个用高级程序语言编写的程序在计算机上运行时所消耗的时间取决于下列因素:? 算法采用的策略、方法。(决定算法本身的优劣) 编译产生的代码质量。?(依靠软件支撑) 问题的输入规模。? 机器执行指令的速度。?(依赖硬件性能);也就是说,抛开这些与计算机硬件、软件有关的因素,一个程序的运行时间,依赖于算法的好坏和问题的输入规模。 所谓问题输入规模是指输入量的多少。? ;例:求1~100的和。;i从 1 到 100,每次都要让j循环 100 次,而当中的x++和sum?=?sum?+?x;其实就是 1+2+3+…+10000,也就是 1002次,所以这个算法当中,循环部分的代码整体需要执行n2(忽略循环体头尾的开销)次。 显然这个算法的执行次数对于同样的输入规模n?=?100,要多于前面两种算法,这个算法的执行时间随着n的增加也将远远多于前面两个。;我们在分析一个算法的运行时间时,重要的是把基本操作的数量与输入规模关联起来,即基本操作的数量必须表示成输入规模的函数。;函数的渐近增长;输入规模 n 在没有限制的情况下,只要超过一个数值N,这个函数就总是大于另一个函数,我们称函数是渐近增长的。 函数的渐近增长:给定两个函数 f(n)和 g(n) ,如果存在一个整数 N,使得对于所有的 n N,f(n)总是比 g(n)大,那么,我们说 f(n)的增长渐近快于 g(n)。 ;;算法E是 2n2?+?3n?+?1,算法F是 2n3?+?3n?+?1;算法G是 2n2,算法H是 3n?+?1,算法I是 2n2?+?3n?+?1;;算法时间复杂度;这样用大写 O(?)来体现算法时间复杂度的记法,我们称之为大 O 记法。 一般情况下,随着 n 的增大,T(n)增长最慢的算法为最优算法。? 显然,由此算法时间复杂度的定义可知,我们的三个求和算法的时间复杂度分别为O(n),O(1),O(n2)。我们分别给它们取了非官方的名称,O(1)叫常数阶、O(n)叫线性阶、O(n2)叫平方阶等等。;推导大O阶方法 ; 常数阶; 线性阶; 对数阶; 平方阶;;常见的时间复杂度 ; 最坏情况与平均情况 ;;算法的空间复杂度;说明;本章小结

文档评论(0)

laolingdao1a + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档