- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中国计量学院数据结构第1章 绪论
for (i=1; i=n; i++) for (j=1; j=n; j++) { c[i][j] = 0; for (k=1; k=n; k++) c[i][j] += a[i][k] * b[k][j]; } 基本操作: 乘法 T(n) = n3 = O(n3) * int sum(int n) { int s; s = 100*200; for (int i=1; i=n; i++) s += i; return s; } * O(n) void f1(int a[ ], int n) { for (int i=0; in; i++) a[i] = 0; for (int i=0; in; i++) for (int j=0; jn; j++) a[i] += a[j] + i + j; } * O(n2) 递归—阶乘 long factorial(int n) { if( n = 1 ) return 1; else return n * factorial( n - 1 ); } * O(n) 关于时间复杂度的讨论 一般情况,对一个问题只需选择一种基本操作来讨论算法的时间复杂度; 但有时,也需要同时考虑几种基本操作,甚至可以对不同操作赋予不同的权值,以反映不同操作所需的相对时间,便于综合比较不同的算法 * 关于时间复杂度的讨论 同样的算法对不同的数据,其时间复杂度可能会不同,所以可采用如下度量方法 平均时间复杂度 有时各种输入数据集出现的概率难以确定,很难计算 最坏情况下的时间复杂度 更可行、更常用 算法执行时间的一个上界 * 算法的存储空间需求 * 算法的空间复杂度定义为: 表示随着问题规模 n 的增大,算法运行所需存储量的增长率与 g(n) 的增长率相同。 S(n) = O(g(n)) * 1. 熟悉各名词、术语的含义,掌握基本概念。 本章学习要点 2. 掌握计算语句频度和估算算法时间复杂度的方法。 * The end 周永霞 (678130zhou.homework@ 赛博南楼312 数据结构 信息工程学院 曾宪庭 mico@ 课时安排: 讲授——40学时 上机——24学时 考核 平时及实验30%,期末考试70% 教材: 数据结构 严蔚敏 清华大学出版社 参考书: 数据结构 唐策善 高等教育出版社 1 绪论 1.1 什么是数据结构 1.2 基本概念和术语 1.3 抽象数据类型的表示与实现 1.4 算法和算法分析 * 1.1 什么是数据结构 是计算机存储、组织数据的方式 精心选择的数据结构可以带来更高的运行效率或者存储效率 由若干数据元素依据某种关系组织起来 * 1.2 基本概念和术语 数据 数据元素 数据的基本单位,数据中的一个“个体” 由若干个数据项组成 数据对象 性质相同的数据元素的集合 结构 数据元素之间的关系 * 逻辑结构 对数据元素间逻辑关系的描述 物理结构 数据结构在计算机中的实现,又称存储结构 如无特殊说明,一般所说的数据结构,是指逻辑结构 算法的设计取决于数据结构,而算法的实现依赖于采用的存储结构 * * 数据结构可归结为以下四类: 线性结构 树形结构 图/网状结构 集合结构 数据结构的形式定义 二元组 Data_Structures = (D, S) 其中: D 是数据元素的有限集, S 是 D上关系的有限集 * 数据结构的形式定义—复数 * C是含两个实数的集合: C={c1,c2|c1,c2∈RealSet } R是定义在集合C上的关系的集合: R={c1,c2 | c1是复数的实部 | c2 是复数的虚部 } Complex = ( C, R ) 数据类型 描述操作对象的特性 C语言:int char float double …… 抽象数据类型 Abstract Data Type (ADT) 一个数学模型及定义在该模型上的一组操作 * 抽象数据类型 实际上就是对某种数据结构的定义 它定义了一个数据的逻辑结构以及在此结构上的一组算法或操作 * 抽象数据类型的表示 三元组 ( D, S, P ) D:数据对象 S:D上的关系集 P:对D的基本操作集 * 抽象数据类型的表示 ADT 抽象数据类型名 { 数据对象:用伪码描述 数据关系:用伪码描述 基本操作: } ADT 抽象数据类型名 * 抽象数据类型的表示 基本操作的定义格式: 基本操作名(参数表) 初始条件: 操作结果: * 抽象数据类型的表示 引用参数:
您可能关注的文档
最近下载
- 基于STM32的智能家居风扇设计(智能温控风扇).doc
- GB_T 43697-2024 数据安全技术 数据分类分级规则.docx
- SJG 134-2023 建设工程施工脚手架安全技术标准.docx
- 车展展会可行性分析报告.pptx VIP
- 生物竞赛国赛试题及答案.pdf VIP
- 分布式发电对配电网影响的研究.doc
- 内蒙古乌尼特矿业有限责任公司乌尼特煤矿接续生产环境影响报告书.doc
- 特种设备-维护保养记录(叉车-电动托盘堆垛车).docx
- 《多边形的内角和》 示范教学PPT课件【初中数学人教版八年级上册】.pptx
- 紧密型县域医疗卫生共同体消毒供应中心运营指南(2020年版 医联体建设).docx
文档评论(0)