数据结构 邓欣-ch1.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文档。上传文档
查看更多
例:采蘑菇 * ADT 采蘑菇{ 数据对象:Mario 数据关系:无 基本操作:走(前、后、上下),跳,打子弹 } ADT 采蘑菇 * 1.3 抽象数据类型的表示和实现 可以通过固有数据类型表示和实现,由此利用类C 类C语言描述:P9-13 typedef 数据类型定义 ElemType 数据元素类型 Status 函数结果状态的整数描述· 几组特殊的赋值形式: 交换赋值,数组赋值,条件赋值 三种结束语句 return, break, exit 与运算, 或运算|| 形参中T为值参,值不可变,(函数调用中要考虑) T为引用参数,值可变。 (对结构产生影响的用T,不产生影响的用T) * 内存的动态分配与释放 malloc free 指针变量= new 数据类型 delete 指针变量 函数结果主要状态代码: TRUE, OK=1 FALSE, ERROR=0 OVERFLOW = -2 例子 算一下1+2+…+100 典故:18实际伟大的数学家高斯。 你编程怎么算? * 1.4算法和算法分析 算法定义:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列 特性: 输入 有0个或多个输入 输出 有一个或多个输出(处理结果) 确定性 每步定义都是确切、无歧义的 有穷性 算法应在执行有穷步后结束 可行性 每一条运算应可通过已经实现的基本运 算执行有限次来实现 算法的描述:c,c++,或类语言 算法怎么样? 性能分析与度量 算法的性能标准 算法的后期测试 算法的事前估计 算法的性能标准 正确性 可读性 健壮性 效率与低存储量 算法的后期测试 在算法中的某些部位插装时间函数 time ( ) 测定算法完成某一功能所花费的时间 缺点:20年前的286和现在的计算机相比? 算法的事前估计 问题规模 n 空间复杂度:单位由1增加到n,f(n) 时间复杂度:单位由1增加到n,g(n) * 为什么讨论 算法 复杂度? 例 猜扑克牌(52张 没有大小王). 直接猜某张牌 先猜花色,再猜牌点 * 算法 复杂度? 猜对牌张需要的平均次数是多少? 与方法的关系? 猜测次数与牌张数量有什么关系? * 为什么讨论 算法 复杂度? 例 猜数字游戏(1到100之间的整数). 回答:猜对了/不对 回答:猜对了/太大了/太小了 猜对数字需要的平均次数是多少? 这个次数与整数的个数有什么关系? 时间复杂度度量 编译时间 运行时间 程序步 语法上或语义上有意义的一段指令序列 执行时间与实例特性无关 例如: 注释:程序步数为0 声明语句:程序步数为0 表达式:程序步数为1 * 定义1 如果存在正的常数C和自然数n0,使得当n≥n0时有 |f(n)|≤C|g(n)|。 则称函数f(n)当n充分大时上有界,且g(n)是它的一个上界,记为f(n)=Ο(g(n))。这时我们还说f(n)的阶不高于g(n)的阶。O(omicron) f(n)是计算时间,与机器及语言有关 g(n)是事前分析中的一个形式简单的函数,独立于机器和语言的函数。 符号O表示计算时间的上界 O(g(n)) is the set of complexity functions that are upper bounds on g(n) 若干符号和他们的意义 * 频度:是指该语句重复执行的次数 例1 {++x;s=0;} 将x自增看成是基本操作,则语句频度为1,即时间复杂度为O(1) 如果将s=0也看成是基本操作,则语句频度为2,其时间复杂度仍为O(1),即常量阶。 例2、for(i=1;i=n;++i) {++x;s+=x;} 语句频度为:2n 其时间复杂度为:O(n) 即时间复杂度为线性阶。 复杂度计算 示例 * 例3、for(i=1;i=n;++i)     for(j=1;j=n;++j) {++x;s+=x;} 语句频度为:2n2  其时间复杂度为:O(n2) 即时间复杂度为平方阶。 复杂度计算 示例 * 例4、for(i=1,i=n;++i) for(j=1;j=n;++j)

文档评论(0)

精品文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档