当前位置:文档之家› 数据结构(C语言版)(严蔚敏)

数据结构(C语言版)(严蔚敏)


31
4、效率与低存储量需求 、
通常,效率指的是算法执行时间;存储量指的是 算法执行过程中所需要的最大存储空间。两者都 与问题的规模有关。
32
算法效率的衡量方法和准则
通常有两种衡量算法效率的方法: 事后统计法 缺点:1、必须执行程序 2、其它因素掩盖算法本质 事后分析估算法 和算法执行时间相关的因素: 1算法选用的策略 2、问题的规模 3、编写程序的语言 4、编译程序产生的机器代码的质量 5、计算机执行指令的速度
5
–例
书目自动检索系统
线性表
书目文件
书目卡片 001 高等数学 樊映川 002 理论力学 罗远祥 登录号: 003 高等数学 华罗庚 004 书名: 线性代数 栾汝书 …… 作者名: …… ……
按书名
高等数学 理论力学 线性代数 ……
S01 L01 S01 S02 ……
索引表
按分类号
分类号: 001, 003… … 樊映川 出版单位: 002, … … .. 华罗庚 出版时间: 004, … … 栾汝书 价格: … … ..
29
2、可读性 、
算法主要是为了人的阅读与交流,其次才是为计 算机执行。因此算法应该易于人的理解;另一方 面,晦涩难读的程序易于隐藏较多错误而难以调 试;
30
3.健壮性 健壮性
当输入的数据非法时,算法应当恰当地作出反映 或进行相应处理,而不是产生莫名奇妙的输出结 果。并且,处理出错的方法不应是中断程序的执 行,而应是返回一个表示错误或错误性质的值, 以便在更高的抽象层次上进行处理。
23
1.3 算法和算法分析
算法的概念和描述: 算法的概念和描述: 什么是算法? 什么是算法? 算法( 算法(Algorithm)是为了解决某类问题而规定的一 是为了解决某类问题而规定的一 个有限长的操作序列。 个有限长的操作序列。一个算法必须满足以下五 个重要特性: 个重要特性:
24
1.3 算法和算法分析
Data Structure
数据结构( 语言版 语言版) 数据结构(C语言版)
课程安排
总学时: 总学时:30 教材:《数据结构C语言版 严蔚敏、 :《数据结构 语言版》 教材:《数据结构 语言版》严蔚敏、吴伟民
-----清华大学出版社 清华大学出版社
2
第一章 绪论
1.1 数据结构的概念 1.2 基本概念和术语 1.3 算法和算法分析
15
四个基本结构

集合

线性结构

树形结构

网状结构
16
数据结构的形式定义为: 数据结构的形式定义为:数据结构是一 个二元组 Data__Structure(D,S)
其中:D是数据元素的有限集 S是D上关系的有限集 例:在计算机科学中,复数可取如下定义:复数 可取如下定义:复数是是一种数据结构 Complex=(C,R)
17
例:假设我们需要编制一个事务管理的程序, 假设我们需要编制一个事务管理的程序, 管理学校科学研究课题小组的各项事务, 管理学校科学研究课题小组的各项事务,则 首先要为程序的操作对象——课题小组设计 首先要为程序的操作对象 课题小组设计 一个数据结构。 一个数据结构。
假设每个小组由一位教师、一至三名研究生及一 至六名本科生组成,小组成员之间的关系是:教 师指导研究生,而由每位研究指导一至两名本科 生。则可以如下定义数据结构: Group=(P,R)
9
1.1 数据结构的概念
数据结构课程》 《数据结构课程》 所处的地位: 所处的地位:
10
1.2 基本概念和术语
数据(Data): 数据 对信息的一种符号表示。在计算机科学中是指所有 对信息的一种符号表示。 能输入到计算机中并被计算机程序处理的符号的总 称。 数值型数据 非数值型数据
11
1.2 基本概念和术语
12
1.2 基本概念和术语
数据对象(Data Object): 数据对象 : 性质相同的数据元素的集合。是数据的一个子集。 性质相同的数据元素的集合。是数据的一个子集。
整数数据对象
N = { 0, ±1, ±2, … }
字母字符数据对象 C={ ‘A’, ‘B’, ‘C’, … ‘F’ }
13
什么是数据结构
19
数据元素之间的关系在计算机中有两种不同的表 示方法:顺序映象和非顺序映象 顺序映象和非顺序映象,并由此得到 顺序映象和非顺序映象 两种不同的存储:顺序存储结构和链式存储结 顺序存储结构和链式存储结 构。
20
数据类型:是和数据结构密切相关的一个概念, 它最早出现在高级程序语言中,用以刻画(程序) 操作对象的特性。 按“值”的不同特性,高级程序语言中的数据类 型可分为两类:一类是非结构的原子类型 原子类型。原子 原子类型 类型的值是不可分解的。另一类是结构类型 结构类型。结 结构类型 构类型的值是由若干成分按某种结构组成的,因 此是可以分解的,并且它的成分可以是非结构的, 也可以是结构的。
37
数据元素(Data Element): 数据元素 数据的基本单位,在计算机程序中通常作为一个 数据的基本单位, 基本单位 整体进行考虑和处理。 整体进行考虑和处理。 一个数据元素可由若干个数据项组成。 一个数据元素可由若干个数据项组成。数据项 数据项组成 是数据的不可分割的最小标识单位 最小标识单位。 是数据的不可分割的最小标识单位。
35
从算法中选取一种对于所研究的问题来说是基本 操作的原操作,以该基本操作在算法中重复执行 的次数作为算法运行时间的衡量准则。
36
例一
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]; } 基本操作:乘法操作 3 时间复杂度:O(n )
18
1.2 基本概念和术语
逻辑结构--逻辑结构--数据元素间抽象化的相互关系(简称为数据结构)。 数据元素间抽象化的相互关系(简称为数据结构)。 与数据的存储无关,独立于计算机, 与数据的存储无关,独立于计算机,它是从具体问题抽 象出来的数学模型。 象出来的数学模型。
存储结构(物理结构) 存储结构(物理结构)---数据元素及其关系在计算机存储器中的存储方式。 数据元素及其关系在计算机存储器中的存储方式。 是逻辑结构用计算机语言的实现,它依赖于计算机语言。 是逻辑结构用计算机语言的实现,它依赖于计算机语言。
33
假如,随着问题规模n的增长,算法执行时间的 增长率和f(n)的增长率相同,则可记作: T(n)=o(f(n)) 称T(n)为算法的(渐近)时间复杂度
34
算法=控制结构+原操作(固有数据类型的操作) 算法的执行时间= ∑原操作(i)的执行次数*原操作(i)的执行时间 算法的执行时间 与 原操作执行次数之各 成正比
算法的概念和描述: 算法的概念和描述:
一个算法必须满足以下五个准则: 一个算法必须满足以下五个准则: (1)有穷性 (2)确定性 (3)可(能)行性 (4)输入 (5)输出
25
1、有穷性 对于任意一个组合法输入值,在执行有穷步 骤之后一定能结束,即:算法中的每个步骤都能在有限 时间内完成; 2、确定性 对于每种情况下所应执行的操作,在算法中 都有确切的规定,使算法的执行者或阅读者都能明确其 含义及如何执行。并且在任何条件下,算法都只有一条 执行路径; 3、可行性 算法中的所有操作都必须足够基本,都可以 通过已经实现的基本操作运算有限次实现之;
定义1---定义
是相互之间存在一种或多种特定关系的数据元素的集 合。
定义2---定义
按某种逻辑关系组织起来的一批数据( 按某种逻辑关系组织起来的一批数据(或称带结构 组织起来的一批数据 的数据元素的集合)应用计算机语言并按一定的存储 的数据元素的集合)应用计算机语言并按一定的存储 把它们存储在计算机的存储器中, 方式把它们存储在计算机的存储器中 表示 方式把它们存储在计算机的存储器中,并在其 上定义了一个运算的集合。 上定义了一个运算的集合。
…….
按作者名
001,… 002,…. 004,…. …….
L S ……
002,… 001,003, ……
6

–例
井字棋
……..
……..
7
…...
…...
…...
…...
–例
多叉路口交通灯管理问题

AB
ห้องสมุดไป่ตู้
AC
AD B
C D
BA
BC
BD
DA EA EB
DB EC
DC A ED
E
8
1.1 数据结构的概念
14
1.2 基本概念和术语
一、集合:结构中的数据元素除了同属于一种类型 集合: 别无其它关系。 外,别无其它关系。 线性结构: 二、线性结构:结构中的数据元素之间存在一对一 的关系,如线性表、 队列。 的关系,如线性表、栈、队列。 三、树型结构:结构中的数据元素之间存在一对多 树型结构: 的关系,如树。 的关系,如树。 图状结构或网状结构: 四、图状结构或网状结构:结构中的数据元素之间 存在多对多的关系,如图。 存在多对多的关系,如图。
4
1.1什么是数据结构 什么是数据结构
数值计算解决问题的一般步骤: 数值计算解决问题的一般步骤: 数学模型→选择计算机语言 编出程序→测试 选择计算机语言→编出程序 测试→最终解 数学模型 选择计算机语言 编出程序 测试 最终解 答。 数值计算的关键是:如何得出数学模型(方程)? 数值计算的关键是:如何得出数学模型(方程)? 程序设计人员比较关注程序设计的技巧。 程序设计人员比较关注程序设计的技巧。 非数值计算问题: 非数值计算问题: 数据元素之间的相互关系一般无法用数学方程加以描述
相关主题