计算机导论-7-数据结构与算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单位。有时称为字段或域(field)。(数据元素有哪些组成成分)
学号 数据元素 (一名学生) 6012410109 姓名 张三 性别 男 政治面貌 党员 …… ……
数据项1
数据项2 数据项3
数据项4
……
6
数据结构
1、数据结构的基本概念
逻辑结构与物理结构
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(3)直接前驱(immediate predecessor)与直接后继(immediate
successor) ai是ai+1的直接前驱,ai+1是ai的直接后继。
(4)基本操作:
初始化空表、求长度、判断空表、置空、取第i号元素、 定位(给定元素值)、修改元素、
插入元素、删除元素。
9
数据结构
2、典型的数据结构
棋上摆放八个皇后,使其不能互相攻击,即任意两个
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
皇后都不能处于同一行、同一列或同一斜线上,问有 多少种摆法?
这个问题可以抽象成图的问题,用图形结构和图的遍历算
法来解决。
19
例:【华容道游戏】如何使大方块(曹操)从重围中走出
来?(除大方块可以最终移出出口外,所有块都只 能在盒内向相邻的空格移动,)
某些棋类对弈问题
13
例:人机对奕问题

辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
……..
……..
…...
…...
…...
…...
14
wk.baidu.com 数据结构
2、典型的数据结构
图(graph):n个数据元素,任意两个元素之间都可能存在逻辑关系。
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
O(nlogan)
26
算法
3、衡量算法的优劣
举例:输入正整数 n,输出 n 的所有因数。
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
begin input n;
时间复杂度:O(n)
空间复杂度:O(1)
for k = 1 to n
begin if n % k = 0 then output k;
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
出 口 这个问题可以抽象成图的问题,用图形结构和图的遍历算 法来解决。
20
算法
1、算法的基本概念
算法(algorithm):为求解问题而采取的方法和步骤。
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
算法分类:数值运算算法、非数值运算算法。 算法的特征
(1)逻辑结构:G = ( V, E ) V:顶点(图结点)的有穷集合。
E:边(两个顶点间的关系)的有穷集合。
1
2 4
无向图
1 3 4
3
2
有向图
15
数据结构
2、典型的数据结构

辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(2)图的应用:一组数据元素,互相之间地位平等,互相之间都可能 存放某种逻辑关系。
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
1
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
第 7 讲
数据结构与算法
2
数据结构与算法
数据结构(data structure)
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
数据结构的基本概念
典型的数据结构
算法(algorithm)
队列的操作特点:先进先出(后进后出)
10
数据结构
2、典型的数据结构
线性表
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(7)线性表的应用 (1)一组数据元素,互相之间地位平等(可能有先后次序,除此
之外没有其他逻辑关系)。
例如:30名学生、10个班级、100本书等 例如:操作系统中的进程表、FAT表
(3)选择执行:if、switch (4)循环执行:while、for
算法
3、衡量算法的优劣
算法设计的要求
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(1)易读性: 格式整洁,命名规范。易于阅读和理解,易于调试修改和扩充。
(2)健壮性:
对于非法输入,算法应作出反应或处理。(容错) (3)高效性:
end
end
27
算法
3、衡量算法的优劣
举例:输入 20 个数,求最大值。
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
begin input max;
时间复杂度:O(n)
空间复杂度:O(1)
for k = 1 to 19
begin input t;
if t > max then max = t;
end output max;
end
28
相关的主要课程
数据结构 专门一门课程讲授数据结构
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(含线性表、树、图、排序、查找等内容)
29
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
多了解一些
30
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
高德纳——唐纳德· 克努斯
31
高德纳——唐纳德 • 克努斯 算法和程序设计技术的先驱者
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院

1938年出生于密尔沃基。 1956年就读凯斯理工学院,1960年同时获学士和硕士学位, 之后在伯克利攻读数学博士学位。1963年毕业后,在伯克 利任教。 1962年,世界著名出版社Addison-Wesley向他约稿,他 原计划出7卷。
(1)数据逻辑结构(data logical structure): 数据元素之间存在的一种或多种特定的关系。
(2)数据物理结构(data physical structure):
数据在计算机中的存放方式,即数据逻辑结构在计算机存储器 中的实现。
(数据是如何在存储器中存放的)
7
数据结构
1、数据结构的基本概念
34
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
B 8
12 H
52 56
I 9 79
34
B 8 C 21
12 H
I
9 79
C
21 D
G
G
31 E 10
31 E 10 85 67 98
F
D
F
(a)城市距离图
(b)联通各城市最小生成树
18
例:【八皇后问题】高斯1850年提出:在8×8格的国际象
(2)栈的应用:
例如:子程序调用的实现、表达式计算的实现、语法分析等 (3)队列的应用:
例如:操作系统中的作业队列、打印队列、缓冲区等
11
数据结构
2、典型的数据结构
树(tree): n(n≥0)个结点的非线性结构;有且只有一个结点称为
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
根(root);余下结点分为m(m>0)个不相交的集合,每个集合又是一 棵树,称为根的子树(subtree)。
常见时间复杂度(time complexity)
O(1)——常数阶(算法所需时间与问题规模无关) O(logan)——对数阶 O(n)——线性阶(算法所需时间与问题规模成正比) O(n2)——平方阶、O(n3)——立方阶、… … O(an)——指数阶
O(nlogan)
25
算法
3、衡量算法的优劣
设计。要学会将看似截然不同的问题抽象成相同的数据结构。
例如:(1)某班级学生信息表的处理:线性表 (2)某单位组织结构信息的处理:树
(3)某地区公路网信息的处理:图
以上问题都能在《数据结构》课程中找到标准的数据结构和处理算法。 (4)补考排考场的处理
这个问题可用“图”来组织数据,但在《数据结构》课程中没有相应算法

5
数据结构
1、数据结构的基本概念
数据元素和数据项
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(1)数据(data):所有能输入计算机并被计算机程序所处理的符号的 总称。
(2)数据元素(data element):数据的基本单位,通常作为一个整体
进行处理。又称结点(node)或记录(record)。 (3)数据项(data item):数据的不可分割的、具有独立意义的最小
常见空间复杂度(space complexity)
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
O(1)——常数阶(算法所需辅助空间与问题规模无关) O(logan)——对数阶
O(n)——线性阶(算法所需辅助空间与问题规模成正比)
O(n2)——平方阶、O(n3)——立方阶、… … O(an)——指数阶
类似程序设计语言,但不那么严格、不那么形式化的算法描述方法。 (1)赋值、输入、输出 例:求最大公约数 begin input m, n; r = m % n; while r <> 0 begin m = n; n = r; end output n; end
23
(2)程序块、顺序执行:begin … end
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(1)基本符号
起止框
(2)例:求最大公约数
开始
输入输出框
处理框 判断框 流线 连接点
输入m,n
r=m%n r == 0? N m=n n=r
Y
输出n 结束 22
算法
2、算法的描述方法
伪代码(pseudo code):
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(3)以数据为中心设计程序,因此,数据结构是关键。数据结构设计
得当,程序设计得心应手,事半功倍;数据结构设计不好,程序 设计事倍功半,甚至无从下手。
4
数据结构
1、数据结构的基本概念
数据结构的使用
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
强调灵活运用,《数据结构》课程讲授典型的数据结构与处理算法,但 实际应用中要综合,要变通,要深刻理解数据结构的思想,要有自己的
(1)有穷性:包含有限的操作步骤。(步骤数和时间上都有限)
(2)确定性:每一个步骤都是确定的,没有歧义。 (3)有效性:每一个步骤都有效执行,并得到确定的结果。
(4)有零个或多个输入:从外界取得必要的信息。
(5)有一个或多个输出:整个算法必须获得结果。
21
算法
2、算法的描述方法
流程图(flowchart)
A

D
子 树
B
C
E
F
I
G
H
J
12
数据结构
2、典型的数据结构

辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
树的应用:一组数据元素,互相之间地位不平等,有严格的上下级层次 关系。
例如:
文件索引的B+树、目录组织的树形结构 网络交换机的生成树
某单位的组织结构
(如辽科院,之下分n多二级教学单位和职能部门,每个 二级单位/部门下又分教研室、科室等)
达到所需的时空性能。尽可能省时间(时间效率高)、省空间(空
间效率高)。
24
算法
3、衡量算法的优劣
复杂度(complexity)
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
用O(关于n的表达式)作为时间或空间复杂度的表示,其中 “关于n的表达式”忽略常数项、低次项。 (n代表问题规模,一般代表待处理的数据量——数据元素数)
例如:
网络中的路由器 交通图、电路图、列车运行图、地下管网
棋类对弈
迷宫、一笔画 很多人工智能问题
……
16
例:多叉路口交通灯管理问题

C AB
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
AC
BD
AD
B
D
BA
BC
DA
EA EB
DB
EC
DC
ED
A
E
17
例:多城市间最小距离问题
A 45 18 A
线性表
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
(5)栈(stack):只能在一端进行插入和删除操作的线性表。 栈的插入:进栈、入栈、压栈
栈的删除:退栈、出栈、弹栈
栈的操作特点:先进后出(后进先出) (6)队列(queue):只允许在表的一端插入元素,在表的另一端删除
元素。
队头:删除端 队尾:插入端。
算法的基本概念 算法的描述方法 衡量算法的优劣
3
数据结构
1、数据结构的基本概念
数据结构(data structure):
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
数据元素之间抽象化的关联构造。 (重在元素之间的逻辑关系及数据处理)
数据结构的作用
(1)Pascal之父——Nicklaus Wirth:算法 + 数据结构 = 程序 (2)数据结构是程序设计之前必须先考虑好的问题
四种基本的逻辑结构
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
集合
线性结构
树形结构
图形结构
8
数据结构
2、典型的数据结构
辽 宁 科 技 学 院 电 气 与 信 息 工 程 学 院
线性表(list):n (n≥0)个数据元素的有限序列(a1 , a2 , … , an)。
(1)长度:线性表中数据元素的个数。 (2)空表:长度为0的线性表。
相关文档
最新文档