《严蔚敏数据结构 (13)》-(课件).ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数 据 结 构 第1章 绪 论 1.1 什么是数据结构 1.2 学习数据结构的意义 1.3 数据结构涵盖的主要内容 1.4 什么是抽象数据类型 1.5 算法效率的度量 1.1 什么是数据结构 是相互之间存在一种或多种特定关系的数据元素的集合,表示为: 数据(data)——所有能被计算机识别、存储和处理的符号的集合(包括数字、字符、声音、图像等信息 )。 数据元素(data element)——是数据的基本单位,具有完整确定的实际意义(又称元素、结点,顶点、记录等)。 数据项(Data item)——构成数据元素的项目。是具有独立含义的最小标识单位(又称字段、域、属性 等)。 1.2 学习数据结构的意义   计算机内的数值运算依靠方程式,而非数值运算(如表、树、图等)则要依靠数据结构。   数据结构是一门学科,针对非数值计算的程序设计问题,研究计算机的操作对象以及它们之间的关系和操作等等。 1.3 数据结构涵盖的内容 例1 书目自动检索系统 例2 人机对奕问题 多叉路口交通灯管理问题 (1) S=(D, R) D={ a, b, c, d, e, f } R={(a,e), (b,c), (c,a), (e,f), (f,d)} d1 d5 d2 d4 d3    答:物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。 答:在数据的逻辑结构上定义的操作算法。 它在数据的存储结构上实现。 1.4 什么是抽象数据类型 1.4.1 数据类型与抽象数据类型的区别 1.4.2 抽象数据类型如何定义 例:给出自然数(Natural Number )的抽象数据类型定义。 1.4.3 抽象数据类型如何表示和实现 抽象数据类型可以通过固有的数据类型(如整型、实型、字符型等)来表示和实现。 1.5 算法效率的度量 1.5.1 什么是算法?如何评判算法的好坏? 1.5.2 时间复杂度和空间复杂度如何表示? 1.5.3 计算举例 1.5.1 什么是算法?如何评判一个算法的好坏? 算法效率——用依据该算法编制的程序在计算机上执行所消耗的时间来度量 1.事后统计——利用计算机内记时功能,不同算法的程序可以用一组或多组相同的统计数据区分 缺点:?必须先运行依据算法编制的程序 ?所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本 身的优劣 2.事前分析估计——一个高级语言程序在计算机上运行所消耗的时间取决于: ?依据的算法选用何种策略 ?问题的规模 ?程序语言 ?编译程序产生机器代码质量 ?机器执行指令速度 同一个算法用不同的语言、不同的编译程序、在不同的计算机上运行,效率均不同,———所以使用绝对时间单位衡量算法效率不合适 1.5.2 时间复杂度和空间复杂度如何表示? 时间复杂度:基本操作重复执行的次数的阶数 T(n)=o(f(n)) 空间复杂度:s(n)=o(f(n)) 3n+2=O(n) 因为 3n+2?4n for n?2 6*2n+n2=O(2n) 因为6*2n+n2 ?7*2n for n?4 1.5.3 计算举例 本章小结 数据结构课程—— 数据结构+算法=程序,涉及数学、计算机硬件和软件。 数据结构定义——指互相有关联的数据元素的集合,可用data_Structure=(D,R)表示。 数据结构内容——数据的逻辑结构、存储结构和基本运算 数据结构学习工具——抽象数据类型和伪码(类C) 算法效率指标——时间效率和空间效率 作业: ① 配套习题集的相应题目。 ② 复习C语言,重点是结构类型和递归概念。 注: 1) O()为渐近符号。 2) 空间复杂度S(n)按数量级递增顺序也与上表类似。 复杂度高 复杂度低 时间复杂度T(n)按数量级递增顺序为: 多项式阶 例: 渐进符号(O)的定义:当且仅当存在一个正的常数 C,使得对所有的 n ? n0 ,有 f(n) ? Cg(n),则: f(n) = O(g(n)) 该算法的运行时间由程序中所有语句的频度(即该语句重复执行的次数)之和构成。 解: 分析:显然,语句①的频度是1。设语句2的频度是f(n),则有: 算法的时间复杂

文档评论(0)

花好月圆 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档