数据结构与算法分析 PPT
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姓名 丁1 马2 张3
项目1 项目2 项目3 跳高 跳远 100M 标枪 铅球 标枪 100M 200M
跳高
跳远
100M 200M
李4 铅球 200M 跳高 王5 跳远 200M
铅球
标枪
1、任一选手所选中的项目中应该两两有边相连;
2、任一两个有边相连的顶点颜色(时间)不能相同。
17
解法如下:
(1)设用如下六个不同的代号代表不同的
和算法)
程序简明清晰(简洁) 7
程序=算法+数据结构
以上公式说明了如下两个问题: (1)数据上的算法决定如何构造和 组织数据(算法→数据结构)。 (2)算法的选择依赖于作为基础的 数据结构(数据结构→算法)。 软件=程序+文档(软件工程的观点)
8
2、电子计算机的主要用途:
早期: 主要用于数值计算。
B E
C
比赛 比赛项目 时间
1 A,C
2 B,D
3E
4
F
19
总结:
求解非数值计算的问题主要考虑的是设计出合适 的数据结构及相应的算法。
即:首先要考虑对相关的各种信息如何表示、组 织和存储?
因此,可以认为:数据结构是一门研究非数
值计算的程序设计问题中计算机的操作对象以及它 们之间的关系和操作的学科。
21
《数据结构课程》所处的地位:
22
1.2抽象数据类型和数据结构
一、名词解释
类型:是一组值的集合。如:整数 数据项:一条信息或其值属于某种类
4
1.1 数据结构的原则
数据结构:一类数据的表示及其相关操作 ❖ 学习数据结构的必要性
计算机功能强大更复杂的问题 更复杂的问题更大的计算量 工作越复杂越偏离人们的日常经验 故:必须有一种数据结构来组织各种复杂的数据。 任何一种数据项集合都必须具备查询、排序、 修改的功能,如果选择一个好的数据结构和算 法将会对程序的运行时间产生巨大的影响。
设有六个比赛项目,规定每个选手至多可
参加三个项目,有五人报名参加比赛
(如下表所示)设计比赛日程表,使得
在尽可能短的时间内完成比赛。
姓名 丁一 马二 张三 李四 王五
项目 1 跳高 标枪 标抢 铅球 跳远
项目 2 跳远 铅球 100 米 200 米 200 米
项目 3 100 米
200 米 跳高
16
例6:田径赛的时间安排问题
线性代数 ……
0…0… 4,.. ……价格:
栾汝书 …….
001,… 002,…. 004,…. …….
L S ……
书目文件
索引表
按分类号
002,… 001,003, ……
12
例2人机对奕问题
树
……..
……..
13
…...
…...
…...
…...
例3多叉路口交通灯管理问题 图
C AB AC AD
11
❖ 例1 书目自动检索系统
线性表
按书名
001
高等数书学目卡樊片映川
S01
002 登录理号论:力学 罗远祥
L01
003
高等数学 华罗庚
S01
004 书名线:性代数 栾汝书
S02
…… 作者名…:…
……
……
分类号:
按作者名
高等数学 001,003…出…版单位:樊映川
理论力学 002,……出.. 版时间:华罗庚
项目:
跳高 跳远 标枪 铅球 100米 200米
A
B
C
D
E
F
(2)用顶点代表比赛项目
不能同时进行比赛的项目之间连上一条边。
(3)某选手比赛的项目必定有边相连(不
能同时比赛)。
18
姓名 丁一 马二 张三 李四 王五
项目1 A C C D B
A F
D
项目2 B D E F F
项目3 E
F A
只需 安排四 个单位 时间进 行比赛
后来: 处理逐渐扩大到非数值
计算领域(能处理多种复杂的具有一 定结构关系的数据)。
9
(1)数值计算解决问题的一般步骤:
数学模型→选择计算机语言→编出 程序→测试→最终解答。 数值计算的关键是:如何得出数学 模型(方程)? 程序设计人员比较关注程序设计的 技巧。
10
(2)非数值计算问题:
数据元素之间的相互 关系一般无法用数学 方程加以描述
5
一、为什么要学习数据结构?
1、什么是程序、软件?
N.沃思(Niklaus Wirth)教授提 出:
程序=算法+数据结构
6
程序的主要目标是存储信息和检索信息,
而基础是信息表示.
程序设计核心目标:
(1)设计一种容易理解、编码和调
试的算法
(软件工程原理)
(2)设计一种能有效利用计算机资
源的算法
(数据结构
20
二、数据结构课程的形成和发展:
形成阶段: 60年代初期,“数据结构”有关的内容
散见于操作系统、编译原理和表处理语言等课 程。1968年,“数据结构”被列入美国一些大 学计算机科学系的教学计划。 发展阶段:
数据结构的概念不断扩充,包括了网络、 集合代数论、关系等“离散数学结构”的内容。
70年代后期,我国高校陆续开设该课程。
第一章 绪论
❖ 教学内容:
1.1数据结构的原则 1.2抽象数据类型和数据结构 1.3问题、算法和程序
❖ 学习要求:
理解、掌握算法的基本概念和简单的算法分析、数 据和数据结构的基本概念、数据的逻辑结构和存储 结构的基本概念及其性质和两种结构之间的关系。
1
引
言
二十一世纪是科学技术高速发展的 信息时代,而计算机是处理信息的 主要工具,因此,人们已经认识到, 计算机知识已成为人类当代文化的 一个重要组成部分。
B
BA BC BD
DA DB DC
A
EA EB EC ED
D E
ห้องสมุดไป่ตู้14
例4: 电话号码查询问题:
(1)按顺序存储方式:须遍历表 (2)按姓氏索引方式:索引 要写出好的查找算法,取决于这张表的 结构及存储方式。 电话号码表的结构和存储方式决定了查 找(算法)的效率。
15
例5: 田径赛的时间安排问题(无 向图的着色问题) :
2
❖计 算 机 科 学 技 术 以 惊 人 的 速 度 向前发展,它的广泛应用已从传 统的数值计算领域发展到各种非 数值计算领域。在非数值计算领 域里,数据处理的对象已从简单 的数值发展到一般的符号,进而 发展到具有一定结构的数据。
3
在这里,面临的主要问题是:针对每一种 新的应用领域的处理对象,如何选择合适的 数据表示(结构),如何有效地组织计算机 存贮,并在此基础上又如何有效地实现对象 之间的“运算”关系。传统的解决数值计算 的许多理论、方法和技术已不能满足解决非 数值计算问题的需要,必须进行新的探索。 数据结构就是研究和解决这些问题的重要基 础理论。因此,“数据结构”课程已成为计 算机类专业的一门重要专业基础课。