数据结构第一章 绪论PPT课件
合集下载
数据结构精选课件(ppt 82页)
不同点
10.01.2020
11
1.2 数据结构的内容
逻辑结构 存储结构 运算集合
10.01.2020
12
逻辑结构
定义: 数据的逻辑结构是指数据元素之间逻辑关系描述。
形式化描述: Data_Structure=(D,R)其中D是数据元素的
有限集,R是D上关系的有限集。
四类基本的结构 集合结构、线性结构、树型结构、图状结构。
10.01.2020
13
集合结构
定义: 结构中的数据元素之间除了同属于
一个集合的关系外,无任何其它关系。
例如:
集合
10.01.2020
14
线ቤተ መጻሕፍቲ ባይዱ结构
定义: 结构中的数据元素之间存在着一对
一的线性关系。
例如:
线性表
10.01.2020
15
树型结构
定义: 结构中的数据元素之间存在着一对
多的层次关系。
数据结构课件
用C语言描述
西北师范大学经济管理学院
----信息管理系
10.01.2020
1
第1章 绪 论
1.1 数据结构的基本概念(定义) 1.2 数据结构的内容(研究范围) 1.3 算法设计 1.4 算法描述工具 1.5 对算法作性能评价 1.6 数据结构与C语言表示
●1.7 关于学习数据结构
100001 张爱芬 女 345.67 145.45 30.00 451.12
100002 李 林 男 445.90 185.60 45.00 586.50
100003 刘晓峰 男 345.00 130.00 25.00 450.00
100004 赵 俊 女 560.90 225.90 65.00 721.80
10.01.2020
11
1.2 数据结构的内容
逻辑结构 存储结构 运算集合
10.01.2020
12
逻辑结构
定义: 数据的逻辑结构是指数据元素之间逻辑关系描述。
形式化描述: Data_Structure=(D,R)其中D是数据元素的
有限集,R是D上关系的有限集。
四类基本的结构 集合结构、线性结构、树型结构、图状结构。
10.01.2020
13
集合结构
定义: 结构中的数据元素之间除了同属于
一个集合的关系外,无任何其它关系。
例如:
集合
10.01.2020
14
线ቤተ መጻሕፍቲ ባይዱ结构
定义: 结构中的数据元素之间存在着一对
一的线性关系。
例如:
线性表
10.01.2020
15
树型结构
定义: 结构中的数据元素之间存在着一对
多的层次关系。
数据结构课件
用C语言描述
西北师范大学经济管理学院
----信息管理系
10.01.2020
1
第1章 绪 论
1.1 数据结构的基本概念(定义) 1.2 数据结构的内容(研究范围) 1.3 算法设计 1.4 算法描述工具 1.5 对算法作性能评价 1.6 数据结构与C语言表示
●1.7 关于学习数据结构
100001 张爱芬 女 345.67 145.45 30.00 451.12
100002 李 林 男 445.90 185.60 45.00 586.50
100003 刘晓峰 男 345.00 130.00 25.00 450.00
100004 赵 俊 女 560.90 225.90 65.00 721.80
数据结构CC++第一章绪论PPT课件
针对其逻辑结构和具体的存储结构给出对应的数据类型,
进一步在确定的数据类型C上HEN实LI 现各种操作。
10
1.1 基本概念(3)
➢ 算法(Algorithm):对特定问题求解步骤的 一种描述。
程序 = 数据结构 + 算法”。
➢ 算法是一个有穷的规则序列,这些规则 决定了解决某一特定问题的一系列运算。
数据结构
第一章 绪论
CHENLI
1
第一章 绪论
➢知识点
数据结构中常用的基本概念和术语
算法描述和分析方法
➢难点
算法复杂性的分析方法
➢要求
了解数据的逻辑结构和物理结构,算法的
基本概念,它们对于程序设计的重要性以及 相互关系
掌握算法复杂性的概念及分析方法
CHENLI
2
第一章目录
➢ 1.1 基本概念 ➢ 1.2 算法的描述 ➢ 1.3 算法的评价 ➢ 1.4 应用举例及分析 ➢小结 ➢ 习题与练习
CHENLI
4
➢ 某学校教师的名册。虽然可以用例1.1中的二维 表格将全校教师的名单列出,但采用图1.2所示 的结构更好。它像一棵根在上而倒挂的树,清晰 地描述了教师所在的系和教研组,这样一来可以 从树根沿着某系某教研组很快找到某个教师,查 找的过程就是从树根沿分支到某个叶子的过程。
CHENLI
5
➢ 例 在n个城市之间建立通信网络,要求在其中任 意两个城市之间都有直接的或间接的通信线路,
在已知某些城市之间直接通信线路预算造价的情 况下,使网络的造价最低。
CHENLI
6
通过上面三个例子可以看出:数据结构中元素和元 素之间存在着逻辑关系,而线性表,树,图是三 种基本的逻辑结构,其他各类的数据结构都是由 这三种基本结构派生的。
03数据结构基本概念PPT课件
数据结构研究的主要内容
①数据元素之间的逻辑关系 ②采用的存储结构 ③对这些数据元素采用何种方式进行操作
2020/11/23
9
例:数据结构——学生成绩表
✓数据元素(学号、姓名、科目、成绩) ✓数据元素之间的关系(逻辑结构) ✓数据元素的存储(物理结构) ✓对数据元素的操作(增、减、查找、修改等)
33
数据结构上的常见操作
遍历、插入、更新、 删除、 查找、 排序 注意:每个问题都有一种和多种算法
找到效率最高的 以最容易理解的方式设计 设计的算法不容易出错或出错情况较少
2020/11/23
34
算法
算法的评价
时间复杂度
代码的执行时间,一般是以代码实际执行的指令数量(条)
空间复杂度
2020/11/23
11
数据的逻辑结构
数据元素之间关系的描述 描述逻辑结构的方法:描述法和图示法 描述法:
二元组 B = ( K, R )
K:元素集合 R:元素间关系的集合
注意:元素间的关系一般抽象为前驱与后继关 系,即表明结构中,一个元素的前一个元素是 谁,它的后一个元素又是谁
2020/11/23
24
索引存储
方法
为放在内存 中的元素建 索引表
K1
立索引表
1
K3
元素可以离 2
散存放
3
K4
通过查索引 4 表找到需要 索引号
K2
的元素
2020/11/23
联想:图书馆的查书卡
0300 0301 0302 0303 0304 0305 0306 0307 0308 0309
25
散列存储
散列存储方法
2020/11/23
数据结构讲义精品PPT课件
003 陈诚 02 男 19840910 638
… … … ……
…
数据元素
数据结构 具有结构的数据元素的集合。它包 括数据元素的逻辑结构、存储结构和相适应的 运算。
逻辑结构
数据元素之间的逻辑关系,与计算机无关。 可用一个二元组表示:Data_Structure = (D,R) D:数据元素的有穷集合,R:集合D上关系的有穷集合。
《The Art of Computer Programming》
Art Evans
数据结构在计算机科学中是一门综合性的专业基础课, 也是计算机专业的必修课,是其它许多课程的先修课程, 是设计编译程序、操作系统、数据库系统等系统程序和 大型应用程序的重要基础。
1.2 基本概念和术语
基本术语
数据 被计算机加工处理的对象。 数据元素(记录、表目) 数据的基本单位,
几种常用的运算有: (1)建立数据结构 (2)清除数据结构 (3)插入数据元素 (4)删除数据元素 (5)排序
(6)检索* (7)更新 (8)判空和判满* (9)求长*
*操作为引用型操作,即数据值不发生变化; 其它为加工型操作。
抽象数据类型
抽象数据类型 ADT( Abstract Data Type ): 数据类型概念的引伸。指一个数学模型以及在其上定义的操作集 合,与计算机无关。 数据类型:一组值的集合和定义在其上的一组操作的总称。
抽象数据类型的描述方法
ADT 抽象数据类型名 { 数据对象:〈数据对象的定义〉 数据关系:〈数据关系的定义〉 基本操作:〈基本操作的定义〉
} ADT 抽象数据类型名
其中基本操作的定义格式为:
基本操作名(参数表) 初始条件:〈初始条件描述〉 操作结果:〈操作结果描述〉
数据结构课件:绪论
typedef StudentType DataType11
按照数据元素之间的相互联系方式, 数据的逻辑结构 可分为线性结构、 树结构和图结构。 线性结构是指除第一 个和最后一个数据元素外每个数据元素只有一个前驱数据元 素和一个后继数据元素。 表1 - 1中的数据元素就是一个线性 结构的数据元素。 线性结构也可表示为图1 - 1(a)。 由于线 性结构的数据元素呈现为线性序列, 所以有些教科书把线 性结构称为线性序列, 或简称序列。 树结构是指除根结点 外每个数据元素只有一个前驱数据元素和若干个后继数据元 素, 其典型例子如图1 - 1(b)所示, 其中, 数据元素A有两 个后继数据元素, 分别为B和C。
17
图 1 - 2 基本存储结构形式
(a) 顺序存储结构; (b) 链式存储结构
18
顺序存储结构和链式存储结构是两种最基本、 最常用 的存储结构。 除此之外, 还有仿真指针(也称作静态数组) 和间接地址存储结构。 仿真指针和间接地址存储结构实际 上分别是顺序存储结构和链式存储结构的某种形式的结合。
9
例如, 像下面这样定义后就表示变量a和b所属的数据
类型为StudentType:
StudentType a, b;
表示变量a的name数据项
的语法是, 表示变量b的age数据项的语法是b.age。
没有定义具体数据类型的数据元素称作抽象数据元素。
上述学生情况数据元素的数据类型定义为StudentType,
12
图结构是指每个数据元素可有若干个前驱数据元素和若干 个后继数据元素, 其典型例子如图1 - 1(c)所示, 其中, 数 据元素E有两个前驱数据元素, 分别为B和C。
13
图 1 - 1 基本的数据逻辑结构形式 (a) 线性结构; (b) 树结构; (c) 图结构
按照数据元素之间的相互联系方式, 数据的逻辑结构 可分为线性结构、 树结构和图结构。 线性结构是指除第一 个和最后一个数据元素外每个数据元素只有一个前驱数据元 素和一个后继数据元素。 表1 - 1中的数据元素就是一个线性 结构的数据元素。 线性结构也可表示为图1 - 1(a)。 由于线 性结构的数据元素呈现为线性序列, 所以有些教科书把线 性结构称为线性序列, 或简称序列。 树结构是指除根结点 外每个数据元素只有一个前驱数据元素和若干个后继数据元 素, 其典型例子如图1 - 1(b)所示, 其中, 数据元素A有两 个后继数据元素, 分别为B和C。
17
图 1 - 2 基本存储结构形式
(a) 顺序存储结构; (b) 链式存储结构
18
顺序存储结构和链式存储结构是两种最基本、 最常用 的存储结构。 除此之外, 还有仿真指针(也称作静态数组) 和间接地址存储结构。 仿真指针和间接地址存储结构实际 上分别是顺序存储结构和链式存储结构的某种形式的结合。
9
例如, 像下面这样定义后就表示变量a和b所属的数据
类型为StudentType:
StudentType a, b;
表示变量a的name数据项
的语法是, 表示变量b的age数据项的语法是b.age。
没有定义具体数据类型的数据元素称作抽象数据元素。
上述学生情况数据元素的数据类型定义为StudentType,
12
图结构是指每个数据元素可有若干个前驱数据元素和若干 个后继数据元素, 其典型例子如图1 - 1(c)所示, 其中, 数 据元素E有两个前驱数据元素, 分别为B和C。
13
图 1 - 1 基本的数据逻辑结构形式 (a) 线性结构; (b) 树结构; (c) 图结构
数据结构第一章绪论(1)PPT教学课件
2020/12/10
7
二、 数据结构( Data Structure )
★ 数据结构是相互之间存在一种或多种特定关系的 数据元素的集合
◆ 数据结构=数据+结构(关系)
2020/12/10
8
数据结构的描述方式
1、逻辑结构
★ 是对数据元素之间逻辑关系(抛开具体的关系 含义以及存储方式等)的描述
◆ 它可以用一个数据元素的集合和定义在此集合 上的几个关系来表示
第一章 绪论
第一节 什么是数据结构 ★ 数据结构(Data Structure)
2020/12/10
1
什么是数据结构
★ 数据结构作为一门独立的课程在国外是从1968年 才开始设立的
◆ 当时,数据结构几乎和图论,特别是和表、树的 理论成为同义语
2020/12/10
2
什么是数据结构
◆ 但对于数据结构的概念,至今尚未有一个被一致 公认的定义
2020/12/10
9
★ 数据结构通常可用图形表示 圆圈表示数据元素,箭头表示关系
数据元素
数据元素
Ei
关系
E i+1
数据结构的描述方式
2、物理结构(存储结构)
★ 数据结构在计算机中的具体表示(representation) 和实现 (implementation)
2020/12/10
11
数据结构的分类 1、按逻辑结构分类 ★ 集合、线性结构、树型结构、图状结构 2、按物理结构分类 ★ 顺序存储结构、链式存储结构、索引存储结构
2020/12/10
12
数据结构的概念
★ 数据结构的形式定义为
◆ 数据结构是一个二元组 Data_Structure=(D,S)
数据结构绪论 ppt课件
ppt课件 27 27
1.4 算法和算法分析
2019年3月2日星期六
算法和程序的主要区别:程序是用某种程序设计语言所书 写的一个计算过程。而算法并不一定表现为一个计算机程 序。它可以用不同方式和不同语言来描述。
BEGIN
1t 算法 2i DO UNTIL i>5 t×i t i+1i ENDDO PRINT t
作为描述工具。其描述语法见P10-11。
但上机时要用具体语言实现,如C或C++等
ppt课件 25 25
1.4 算法和算法分析
2019年3月2日星期六
Q1. 什么是算法?
Q2. 算法设计的要求?
Q3. 时间复杂度如何表示?
Q4. 空间复杂度如何表示?
ppt课件 26
26
1.4 算法和算法分析
2019年3月2日星期六
2019年3月2日星期六
【例1】数据管理问题—线性问题
ppt课件 8
8
1.1 什么是数据结构
2019年3月2日星期六
【例2】棋类对弈问题—树型结构
初始棋盘格局
第一步
x
x
x x
第二步
x0
x 0
x
0
x 0
第 N 步
x x x 0x 0x 0 x 0
ppt课件 9
x 0x x0
x 0x x 0
9
1.1 什么是数据结构
ppt课件 30
30
1.4 算法和算法分析
2019年3月2日星期六
3 算法分析
Q3. 时间复杂度如何表示?
• 算法分析方法
• 算法分析的两个主要方面
时间复杂度:算法对时间的需求。 T(n)=O(f(n))
1.4 算法和算法分析
2019年3月2日星期六
算法和程序的主要区别:程序是用某种程序设计语言所书 写的一个计算过程。而算法并不一定表现为一个计算机程 序。它可以用不同方式和不同语言来描述。
BEGIN
1t 算法 2i DO UNTIL i>5 t×i t i+1i ENDDO PRINT t
作为描述工具。其描述语法见P10-11。
但上机时要用具体语言实现,如C或C++等
ppt课件 25 25
1.4 算法和算法分析
2019年3月2日星期六
Q1. 什么是算法?
Q2. 算法设计的要求?
Q3. 时间复杂度如何表示?
Q4. 空间复杂度如何表示?
ppt课件 26
26
1.4 算法和算法分析
2019年3月2日星期六
2019年3月2日星期六
【例1】数据管理问题—线性问题
ppt课件 8
8
1.1 什么是数据结构
2019年3月2日星期六
【例2】棋类对弈问题—树型结构
初始棋盘格局
第一步
x
x
x x
第二步
x0
x 0
x
0
x 0
第 N 步
x x x 0x 0x 0 x 0
ppt课件 9
x 0x x0
x 0x x 0
9
1.1 什么是数据结构
ppt课件 30
30
1.4 算法和算法分析
2019年3月2日星期六
3 算法分析
Q3. 时间复杂度如何表示?
• 算法分析方法
• 算法分析的两个主要方面
时间复杂度:算法对时间的需求。 T(n)=O(f(n))
《数据结构》课件第一章
程序步确定方法
关于复杂度数量级的表示方法
O(n) O(n) O(n)
C + O(n) C * O(n) O(n) * O(n)
顺序语句 一重循环 多重循环 条件判断
C
n m*n、m*n*l、 m*n*l*t …… Max( u, v) (u和v也可能是常数)
➢对于一个多项式的时间复杂度,只记它最高的幂次。
基本概念和术语(二)
➢ 数据结构:
✓ 结构是指数据间的关系。 ✓ 数据结构是指是相互之间存在某种特定关系的
数据元素的集合。(模型) ✓ 数据结构包括三个方面的内容 ▪ 数据的逻辑结构 ▪ 数据的存储结构 ▪ 数据的运算
一个算法的设计取决于选定的逻辑结构, 算法的实现依赖于采用的存储结构
图书馆查询系统 人机对羿
➢ 算法最坏时间复杂度:算法在任何输入 实例上运行时间的上界。
算法的时间复杂度不仅仅依赖于问题的 规模,还取决于输入实例的初始状态
e.g 折半查找法 最好情况:1(x = n/2) 最坏情况:log2 n 一般来说,在普通应用场合中使用折半查找法 时,以最坏情况时的复杂度作为该算法的复 杂度
算法的空间复杂度分析
算法及算法复杂度分析
什么是数据结构
计算机加工处理的对象由纯粹的数值发展 到字符、图表、图象等各种具有一定结构 的数据。
用计算机解决一个具体问题的时候一般有 几个步骤:
❖ 从具体问题抽象出一个数学模型 ❖ 设计解决这个模型的算法(找到处理的对象
的特性和对象之间的关系) ❖ 编程、测试、得到最终解
良好的抽象思维能力
能够针对算法流程图逐一阐述出算法的 完整实现流程
关于流程图的介绍
每个流程图都有一个开始标记 每个流程图至少有一个结束标记 程序模块的确定——顺序语句 条件分支的画法 如何用“条件分支”来实现“循环”的
第一章 绪论 《数据结构》PPT课件
47
① 结构化程序设计目的
通过设计结构良好的程序,以程序的静态良好结构保证 程序动态执行的正确性,使程序易理解、易调试、易维 护,以提高软件开发的效率,减少出错率。
②结构化程序设计的构成单元
任何程序都可由顺序、选择、重复三种基本控制结构来 组成。
③结构化程序设计方法 其一:“自顶向下,逐步求精”的设计思想 ;其二: “独立功能,一个入口,一个出口“的模块化结构; 其 三:“仅用三种基本控制结构”的设计原则
不是针对实际执行时间精确算出算法执行的具 体时间,而是针对算法中语句的执行次数做出估计, 从中得到算法执行时间的信息。
38
定义:
语句频度是指该语句在一个算法中重复执行
的次数。
例如: 算法语句
对应的语句频度
1 for(i=0;i< n;i++)
两个
2
for (j=0;j<n;j++)
矩阵
3
{c[i][j]=0;
1.1 数据结构的基本概念(定义)
1
数据(Data)
定义:
数据是描述客观事物的数值、字符以及能输入 机器且能被处理的各种符号集合。
数据包含整型、实型、布尔型、图象、字符、声音 等一切可以输入到计算机中的符号集合。
例如对C源程序
C编译程序
源程序
(.c)
目标程序 (.obj)
C链接程序
可执行程序 (.exe)
数据元素之间的关系在计算机中的表示方法: ▪顺序映像 (顺序存储结构) ▪非顺序映像(非顺序存储结构)
18
运算集合
例如工资表:
编 号 姓 名 性别 基本工资 工龄工资 应扣工资 实发工资
100001 张爱芬 100002 李 林
① 结构化程序设计目的
通过设计结构良好的程序,以程序的静态良好结构保证 程序动态执行的正确性,使程序易理解、易调试、易维 护,以提高软件开发的效率,减少出错率。
②结构化程序设计的构成单元
任何程序都可由顺序、选择、重复三种基本控制结构来 组成。
③结构化程序设计方法 其一:“自顶向下,逐步求精”的设计思想 ;其二: “独立功能,一个入口,一个出口“的模块化结构; 其 三:“仅用三种基本控制结构”的设计原则
不是针对实际执行时间精确算出算法执行的具 体时间,而是针对算法中语句的执行次数做出估计, 从中得到算法执行时间的信息。
38
定义:
语句频度是指该语句在一个算法中重复执行
的次数。
例如: 算法语句
对应的语句频度
1 for(i=0;i< n;i++)
两个
2
for (j=0;j<n;j++)
矩阵
3
{c[i][j]=0;
1.1 数据结构的基本概念(定义)
1
数据(Data)
定义:
数据是描述客观事物的数值、字符以及能输入 机器且能被处理的各种符号集合。
数据包含整型、实型、布尔型、图象、字符、声音 等一切可以输入到计算机中的符号集合。
例如对C源程序
C编译程序
源程序
(.c)
目标程序 (.obj)
C链接程序
可执行程序 (.exe)
数据元素之间的关系在计算机中的表示方法: ▪顺序映像 (顺序存储结构) ▪非顺序映像(非顺序存储结构)
18
运算集合
例如工资表:
编 号 姓 名 性别 基本工资 工龄工资 应扣工资 实发工资
100001 张爱芬 100002 李 林
数据结构绪论课件
• 数据结构(Data structure):数据之间 的相互关系,包含3个方面的问题: 1。数据元素之间的逻辑关系,即逻 辑结构 2。数据在机内的存储形式,即存储 结构或物理结构。 3 在数据上进行的运算,即对数据 的操作。
1.1 基本概念
– 数据逻辑结构又分为线性结构和 非线性结构。
线性的:线性表,对列,栈等 非线性的:树,图等
1.1 基本概念
数据存储结构有:
顺序存储 链式存储 索引存储 散列存储
1.1 基本概念
• 算法(Algorithm):对特定问题求解 步骤的一种描述。 • 算法是一个有穷的规则序列,这些 规则决定了解决某一特定问题的一 系列运算。 • 由此问题相关的一定输入,计算机 依照这些规则进行计算和处理,经 过有限的计算步骤后能得到一定的 输出。
• 本章介绍了贯穿全书的基本概念和 基本思想。
– 数据 – 数据结构
• 逻辑结构 • 物理结构
– 算法 – 算法的时间复杂性
返回
习题与练习
• 一、名词解释
数据 数据项 数据元素 数据结构 数据逻辑结构 数据物理结构 算法 算法的时间复杂性 有关时间复杂度的几个常用量
• 二、简答
– 1. 算法分析的目的是什么? – 2. 什么是算法的最坏和平均时间复杂性?
第一章目录 基本概念 算法的设计描述 算法的性能分析 应用举例及分析
• 小 结
• 习题与练习
第一章 绪论
• 该课程是1968年由美国科学家Knuth首 先提出的,他在《计算机程序设计技巧》 第1卷和第3卷中有详细的描述。它是 计算机专业的基础课程,是程序设计 的基础。 • 瑞士科学家Wirth在其著作中这样描述: 算法+数据结构=程序,由此可见数据 结构的重要性。
1.1 基本概念
– 数据逻辑结构又分为线性结构和 非线性结构。
线性的:线性表,对列,栈等 非线性的:树,图等
1.1 基本概念
数据存储结构有:
顺序存储 链式存储 索引存储 散列存储
1.1 基本概念
• 算法(Algorithm):对特定问题求解 步骤的一种描述。 • 算法是一个有穷的规则序列,这些 规则决定了解决某一特定问题的一 系列运算。 • 由此问题相关的一定输入,计算机 依照这些规则进行计算和处理,经 过有限的计算步骤后能得到一定的 输出。
• 本章介绍了贯穿全书的基本概念和 基本思想。
– 数据 – 数据结构
• 逻辑结构 • 物理结构
– 算法 – 算法的时间复杂性
返回
习题与练习
• 一、名词解释
数据 数据项 数据元素 数据结构 数据逻辑结构 数据物理结构 算法 算法的时间复杂性 有关时间复杂度的几个常用量
• 二、简答
– 1. 算法分析的目的是什么? – 2. 什么是算法的最坏和平均时间复杂性?
第一章目录 基本概念 算法的设计描述 算法的性能分析 应用举例及分析
• 小 结
• 习题与练习
第一章 绪论
• 该课程是1968年由美国科学家Knuth首 先提出的,他在《计算机程序设计技巧》 第1卷和第3卷中有详细的描述。它是 计算机专业的基础课程,是程序设计 的基础。 • 瑞士科学家Wirth在其著作中这样描述: 算法+数据结构=程序,由此可见数据 结构的重要性。
201009_数据结构(第1章).ppt
姓名
李明 王刚 …
代数
90 84.5 …
216 220
0001 李明
224
228 232
80.5
90
对于这种含有多个数据项的数据元素,每个 数据项在结点中的对应部分称为数据域。
236
1.2 基本概念和术语
下面再来研究如何在计算机中表示数据元素之间的关系。共有两种 表示方法,一种是顺序映象,另一种是非顺序映象。
O(n3)
O(n2)
立方阶
平方阶 算法执行时间的这种度量称为算法的时间复杂度,它反映了当n增大 时,算法的执行时间的增长速度。 如果算法的基本操作语句的频度始终是常数,则该算法的时间复杂 度记为O(1),称为常量阶。常用的时间复杂度有: O(1)、 O(logn)、 O(n)、O(nlogn)、O(n2)、O(n3)、O(2n)
1.2 基本概念和术语
9.结点和数据域 一个数据元素在计算机中的表示称为结点,常由若干字节构成。 例一、 DS=(D,R) 200 王五 其中, D={张三、李四、王五} 204 R={r} 208 r={<王五,李四>,<李四,张三> } 例二、 期末成绩单
212 语文
80.5 85 …
学号
0001 0003 …
1.2 基本概念和术语
4.数据对象 数据对象是具有相同构成的数据元素的集合,是数据的一个子集。 学号 姓名 语文 代数 某班的期末成绩单 0001 80.5 90 李明 数组 0003 85 84.5 王刚 自然数数据对象 … … … … 5.数据结构 数据结构是相互之间存在多种特定关系的具有相同构成的数据 元素的有限集合。 由此看出,数据结构首先是一个数据对象, D={di | 1≤i ≤n, n≥0}; 另外,D中元素之间存在多种特定关系, R={rj | 1≤j ≤m, m≥0}, rj为D上的某个二元关系。于是,数据结构可表示为: DS=(D,R)
数据结构之1绪论PPT课件
char int float double void 字符型 整型 浮点型 双精度型 无值
• 数据类型
定义:一组性质相同的值的集合, 以及 定义于这个值集合上的一组操作的总 称.
26
不同类型的变量,其所能取的值的 范围不同,所能进行的操作不同。
例如:整型 (int) 值的范围是:-32768 ~ 32767(16位) 操作是:+,-,*,/,%
• 物理结构 是逻辑结构在计算机中的表 示和实现,故又称“存储结构” 。
13
逻辑结构和物理结构的关系
数据的逻辑结构是从逻辑关系(某种顺序)上观
察数据,它是独立于计算机的;可以在理论上、 形式上进行研究、推理、运算等各种操作。
数据的存储结构是逻辑结构在计算机中的实现,
是依赖于计算机的;是数据的最终组织形式。
5
例4:城市的煤气管道问题
(a)结点间管道的代价 (b)最经济的管道铺设
6
➢ 描述这类非数值计算问题的数学模型不再
是数学方程,而是诸如表、树、图之类的数 据结构。
➢ 数据结构是一门研究(非数值计算的)程 序设计问题中所出现的计算机操作对象以及 它们之间的关系和操作的学科。
7
课程学习前掌握的基本概念: 数据 数据元素(数据成员) 数据对象
123源自456 78 923
堆(特殊的树结构)
12
1
11
9
2
5
7 10
6 16
3
10 7
35 4 82
“最大”堆
8 9 4 11 12
“最小”堆
24
非线性结构——群结构
1
2
6
3
5
4
图结构
16
• 数据类型
定义:一组性质相同的值的集合, 以及 定义于这个值集合上的一组操作的总 称.
26
不同类型的变量,其所能取的值的 范围不同,所能进行的操作不同。
例如:整型 (int) 值的范围是:-32768 ~ 32767(16位) 操作是:+,-,*,/,%
• 物理结构 是逻辑结构在计算机中的表 示和实现,故又称“存储结构” 。
13
逻辑结构和物理结构的关系
数据的逻辑结构是从逻辑关系(某种顺序)上观
察数据,它是独立于计算机的;可以在理论上、 形式上进行研究、推理、运算等各种操作。
数据的存储结构是逻辑结构在计算机中的实现,
是依赖于计算机的;是数据的最终组织形式。
5
例4:城市的煤气管道问题
(a)结点间管道的代价 (b)最经济的管道铺设
6
➢ 描述这类非数值计算问题的数学模型不再
是数学方程,而是诸如表、树、图之类的数 据结构。
➢ 数据结构是一门研究(非数值计算的)程 序设计问题中所出现的计算机操作对象以及 它们之间的关系和操作的学科。
7
课程学习前掌握的基本概念: 数据 数据元素(数据成员) 数据对象
123源自456 78 923
堆(特殊的树结构)
12
1
11
9
2
5
7 10
6 16
3
10 7
35 4 82
“最大”堆
8 9 4 11 12
“最小”堆
24
非线性结构——群结构
1
2
6
3
5
4
图结构
16
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
28.11.2020
21
算法设计的要求
算法的正确性 l 可读性 l 健壮性 l 高效率和低存储量
例如要求n个数的最大值问题 给出算法如下:
max:=0; for(i=1 ;i<= n ;i++) { scanf("%f", x);
if (x>max) max=x; }
28.11.2020
22
算法描述的工具
算法可用自然语言、框图或高级程序设计语言 进行描述。
类语言是接近于高级语言而又不是严格的高级 语言,具有高级语言的一般语句设施,撇掉语言中 的细节,以便把注意力主要集中在算法处理步骤本 身的描述上。
28.11.2020
23
设计实现算法过程步骤
1. 找出与求解有关的数据元素之间的关系
2. 确定在某一数据对象上所施加运算 3. 考虑数据元素的存储表示 4. 选择描述算法的语言 5.设计实现求解的算法,并用程序语言加以描述。
例如:
树
28.11.2020
8
图状结构或网状结构
定义: 结构中的数据元素之间存在着多对
多的任意关系。
例如:
图
28.11.2020
9
逻辑结构
定义: 数据的逻辑结构是指数据元素之间逻辑关系描述。
l形式化描述: Data_Structure=(D,R)其中D是数据元素的
有限集,R是D上关系的有限集。
28.11.2020
5
集合结构
定义: 结构中的数据元素之间除了同属于
一个集合的关系外,无任何其它关系。
例如:
集合
28.11.2020
6
线性结构
定义: 结构中的数据元素之间存在着一对
一的线性关系。
例如:
线性表
28.11.2020
7
树型结构
定义: 结构中的数据元素之间存在着一对
多的层次关系lgorithm)定义
定义: Algorithm is a finite set of
rules which gives a sequence of operation for solving a specific type of problem.
算法是规则的有限集合,是为解决 特定问题而规定的一系列操作。
28.11.2020
14
1.2数据抽象与抽象数据类型
28.11.2020
15
数据的抽象
汇编语言中十进制表示的数据98.65、 9.6E3等, 它们是二进制数据的抽象;
l高级语言中,给出更高一级的数据抽象,如整型、 实型、字符型等, 还可以进一步定义更高级的数据抽象,如各种表、 队、栈、树、图、窗口、管理器等复杂的抽象数 据类型。
l形式化描述:
D要存入机器中,建立一从D的数据元素到存储 空间M单元映象S ,D→M,即对于每一个d, d∈D, 都有唯一的z∈M使S(D)=Z, 同时这个映象必须明 显或隐含地体现关系R。
28.11.2020
12
存储结构
逻辑结构与存储结构的关系为:
存储结构是逻辑关系的映象与元素本身映象,是数 据结构的实现;逻辑结构是数据结构的抽象。 数据元素之间关系在计算机中的表示方法:
28.11.2020
20
算法的特性
1. 有限性:有限步骤之内正常结束,不能形成无穷循环
2. 确定性:算法中的每一个步骤必须有确定含义,无二 义性得以实现。
3. 输 入: 有多个或0个输入 4. 输 出: 至少有一个或多个输出。
5. 可行性:原则上能精确进行,操作可通过已实现基本 运算执行有限次而完成。
N. (Niklaus Wirth)教授:
算法+数据结构= 不了解施加于数据上的算法就无法决 定如何构造和组织数据, 反之,算法的选择常常在很大程度上要 依赖于作为基础的数据结构.
28.11.2020
1
1.1 什么是数据结构(定义)
28.11.2020
2
数据(Data)
定义:
数据是描述客观事物的数值、字符以及能输入机器且能 被处理的各种符号集合。
28.11.2020
24
对算法作性能评价
评价算法的标准: 评价一个算法主要看这个算法所占
l四类基本的结构 集合结构、线性结构、树型结构、图状结构。
28.11.2020
10
逻辑结构
综上所述,数据的逻辑结构可概括为:
逻辑结构
线性结构——线性表、栈、队、字符串 数组、广义表
非线性结构——树、图
28.11.2020
11
存储结构
定义:
存储结构(又称物理结构)是逻辑结构在计 算机中存储映象,是逻辑结构在计算机中的实 现,它包括数据元素的表示和关系的表示。
17
ADT的表示与实现
ADT的定义:
ADT <ADT名>
{ 数据对象:<数据对象的定义>
结构关系:<结构关系的定义>
基本操作:<基本操作的定义> }ADT <ADT名>
基本操作的定义格式为:<操作名称> (参数表) 操作前提:<操作前提描述> 操作结果:<操作结果描述>
28.11.2020
18
1.3 算法
§顺序映象 (顺序存储结构) §非顺序映象(非顺序存储结构)
28.11.2020
13
数据结构的内容
综上所述,数据结构的内容可归纳为三个部分, 逻辑结构、存储结构和运算集合:
按某种逻辑关系组织起来的一批数据,按一定的映 象方式把它存放在计算机存贮器中,并在这些数据 上定义了一个运算的集合,就叫做数据结构。
数据包含整型、实型、布尔型、图象、字符、声音等一 切可以输入到计算机中的符号集合。
28.11.2020
3
数据元素(Data Element)
定义:
数据元素是组成数据的基本单位 ,是数据 集合的个体,在计算机中通常作为一个整体进行 考虑和处理。例如:
数据项
学 号 姓 名 性 别 籍 贯 出生年月 住 址
28.11.2020
16
抽象数据类型(Abstract Data Type)
定义:
抽象数据类型(简称ADT)是指基于一类逻辑 关系的数据类型以及定义在这个类型之上的一 组操作。
一个抽象数据类型确定了一个模型,但将模型的实现 细节隐藏起来;它定义了一组运算,但将运算的实现过程 隐藏起来。
28.11.2020
101 赵虹玲 女
...
...
...
河北 1983.11 北京 数
据
...
...
...
元 素
28.11.2020
4
数据结构(Data Structure)
定义: 数据结构是指相互之间存在一种或多种特
定关系的数据元素集合,是带有结构的数据元 素的集合,它指的是数据元素之间的相互关系, 即数据的组织形式。