二级公共基础知识数据结构与算法演示文稿
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9页
第9页,共108页。
例题:已知圆的半径,求圆的面积.
算法:
S1:输入圆的半径R;
S2:求面积∏R2;
S3:输出面积;
程序
#include <stdio.h>
#define PI 3.14159
int main() { float r, s;
do{ printf("Please input r:"); scanf("%f", &r); if (r<0) printf("Error!\n");
D) 算法程序中的指令条数
算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。
有穷性
算法的空间复杂度是指
A) 算法程序的长度 B) 算法程序中的指令条数
C) 算法程序所占的存储空间 D) 执行过程中所需要的存储空间
在计算机中,算法是指
A) 加工方法
B) 解题方案的准确而完整的描述
C) 排序方法
放弃该放弃的,选择轻装上阵
第4页,共108页。
一、 数据结构与算法
1. 算法的基本概念;算法复杂度的概念和意义(时间复杂度与空 间复杂度)。
2. 数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表 示;线性结构与非线性结构的概念。
3. 线性表的定义;线性表的顺序存储结构及其插入与删除运算。
(有零个或多个输入,有一个或多个输出) 一个算法有零个或多个输入,以刻画运算对象的初始 情况,所谓零个输入是指算法本身定出了初始条件; 一个算法有一个或多个输出,以反映对输入数据加工 后的结果。没有输出的算法是毫无意义的;
第7页,共108页。
描述算法的工具通常有传统流程图、N-S结构化流程 图、伪代码等。
例1:已知圆的半径,求圆的面积.
伪代码: S1:输入圆的半径R;
S2:求面积 ∏R2; S3:输出面积;
开始 输入R S=3.14 * R*R
输出S
结束
传统流程图
第8页,共108页。
算法与计算机程序
算法——是一组逻辑步骤 程序——用计算机语言描述的算法
算法是程序设计的核心
算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。
sun 1
wang null wu 37 zhao 7 zheng 19 zhou 25
H zhao li zheng
qian sun
zhou
wu
wang /
第34页,共108页。
链接存储结构特点:
1.比顺序存储结构多用空间(存储密度小) (每个节点都由数据域和指针域组成)。
2.逻辑上相邻的节点物理上不必相邻。 3.插入、删除灵活
一般是指执行这个算法所需要的内存空间 一个算法所占用的内存空间包括算法程序所占
的空间、输入的初始数据所占的存储空间以及 算法在执行过程中所需要的额外空间这3部分。
第16页,共108页。
例题讲解
算法的时间复杂度是指
A) 执行算法程序所需要的时间
B) 算法程序的长度
C) 算法执行过程中所需要的基本运算次数
而对于一个固定的规模,算法所执行的基本次数还与 特定的输入有关。
第14页,共108页。
例子2:++x;
基本运算: X增1
基本运算的执行次数: 1
时间复杂度: O( 1 )
例子3: for (i=1;i<=n;++i) ++x;
基本运算: X增1
基本运算的执行次数: n
时间复杂度: O( n )
例子4:for ( i=2;i<=n;++i)
4. 栈和队列的定义;栈和队列的顺序存储结构及其基本运算。
5. 线性单链表、双向链表与循环链表的结构及其基本运算。 6. 树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序
和后序遍历。 7. 顺序查找与二分法查找算法;基本排序算法(交换类排序,插
入类排序,选择类排序)。
第5页,共108页。
1.1 算法
}while(r<=0); s=PI*r*r;
printf("Area=%f\n", s);
return 0;
}
第10页,共108页。
1.1.2 算法的基本要素
1、对数据对象的运算和操作
算术运算 逻辑运算 关系运算 数据传输
2、算法的控制结构
算法中各操作之间的执行顺序 一个算法一般可以用顺序、选择、循环3种基本结
1
2
3
第30页,共108页。
(3)存储结构 1、顺序存储
存储地址 存储内容
Lo Lo+m
元素1 元素2
……..
Lo+(i-1)*m 元素i ……..
Lo+(n-1)*m 元素n
Loc(ai)=Lo+(i-1)*m
每个元素所占用
的存储单元个数
第31页,共108页。
例:线性表(zhao,qian,sun,li,zhou,wu,zheng,wang)
1.2.1 时间复杂度 是指执行算法所需要的计算工作量。
通常有事后统计法和事前分析估算法。
★算法的工作量用算法所执行的基本运算次数来度量.
★算法所执行的基本运算次数与问题的规模n有关(即算法所执
行的基本次数是问题规模的函数).
算法的工作量=f(n)
执行算法所需要的计算工作量和f(n)同步增长,记为: 时间复杂度=O(f(n))
第23页,共108页。
1.数据的逻辑结构:是指反映数据元素之间逻辑关系 的数据结构。它包括数据元素的集合和数据元素之间 的前后关系两个因素。
数据的逻辑结构简称数据结构。
数据结构可描述为 Group=(D,R)
有限个数据元素的集合
有限个数据元素间关系的集合
第24页,共108页。
数据元素(Data Element)
例:学生成绩表
学号 9861109 9861107 9861103
姓名 张卓 刘忠赏 胡孝臣
②栈——后进先出 ③队列——先进先出
成绩 100 95 86
第27页,共108页。
数据结构S=(D,R)
D={春,夏,秋,冬} R={<春,夏>,<夏,秋>,<秋,冬>}
用图形工具
什么型的数据结构? 线性结构
每个节点都由两部分组成: 数据域和指针域。
数据域存放元素本身的数据, 指针域存放指针。
数据元素之间逻辑上的联系由指 针来体现。
第33页,共108页。
通常我们把链表画成用箭头相链接的结点的序列,结点 之间的箭头表示链域中的指针。
存储地址
1
7
头指针 13
31
19
25
31
37
43
数据 指针
li
43
qian 13
春
夏
秋
冬
数据元素:用中间标有元素值的方框表示,称为结点 逻辑关系:用有向线段从前件指向后件(不引起误会 情况下,箭头可以省去)
第28页,共108页。
B.非线性结构
①树形结构
例:家庭成员数据结构可表示成
父亲 儿子 女儿
没有前件的结点称为根结点; 没有后件的结点称为终端结点 (叶子结点)
例:计算机文件管理系统也是典型的树形结构
数据元素是数据的基本单位,即数据集合 中的个体。
有时一个数据元素可由若干数据项
(Data Item)组成。数据项是数据的最小单 位。
数据元素亦称结点或记录。
第25页,共108页。
常用数据结构:
线性 图
树
第26页,共108页。
A.线性结构
①线性表
例:英文字母表
(A , B , C , ·······,X ,Y , Z)
printf("Area=%f\n", S);
return 0; }
算术运算
逻辑运算
关系运算 数据传输
顺序、选择、
循环3种基本 结构
第12页,共108页。
1.1.3 算法设计基本方法
列举法 归纳法 递推 递归(以简洁的形式设计和描述算法) 减半递推技术 回溯法
第13页,共108页。
1.2 算法复杂度
顺序存储结构:
存储地址
7
8
基地址 9
7
10
11
12
13
14
数据
zhao qian sun li zhou wu zheng wang
顺序存储结构,将逻辑上相邻的数据 元素存储在物理上相邻的存储单元里, 具有以下特点: 1.随机存取。
2.作插入或删除操作时,需移动大 量元数。
3.长度变化较大时,需按最大空间分 配。 4.表的容量难以扩充。
第20页,共108页。
计算机管理图书问题
在图书馆里有各种卡片:有按书名编排的、 有按作者编排的、有按分类编排
如何将查询图书的这些信息存入计算机中 既要考虑查询时间短,又要考虑节省空间
数据结构是一门研究数据组织、存 储和运算的一般方法的学科。
最简单的办法之一是建立一张表, 每一本书的信息在表中占一行,如
二级公共基础知识数据结构与 算法演示文稿
第1页,共108页。
二级公共基础知识数据结构与 算法
第2页,共108页。
第3页,共108页。
注意事项
公共基础知识部份的内容是属于计算机专业 本科生的专业课,知识点特别散,而且有 一定的难度。所以考生在学习的过程中, 一定要克服畏难情绪,跟上老师的节奏。 老师让记的,要记住。没做要求的,要学 会放弃。
第21页,共108页。
数据元素在 计算机中的表示
对数据结构中的节点进行
操作处理
(插入、删除、修改、查找、排序)
数据结构是一门研究数据组织、存
储和运算的一般方法的学科。
如何将0,1,2,3,4,5,6,7,8,9这10个数存放在 计算机中能最快地达到你所需要的目的? 目的不同,最佳的存储方方法就不同。
D) 查询方法
第17页,共108页。
算法分析的目的是
A) 找出数据结构的合理性 B) 找出算法中输入和输出之间的关系
C) 分析算法的易懂性和可靠性
D) 分析算法的效率以求改进
算法的工作量大小和实现算法所需的存储单元多少分别称为算法的 【1】 。
时间复杂度和空间复杂度
第18页,共108页。
1.2 数据结构
从大到小排列:9,8,7,6,5,4,3,2,1,0 输出偶数:0,2,4,6,8,1,3,5,7,9
第22页,共108页。
线性表
A.线性结构 栈
队 1.数据的逻辑结构
数
树形结构
据
B.非线性结构
结
构 的
图形结构
三 个
2、数据的存储结构 A 顺序存储
方
面
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
1.1.1 算法(algorithm)基本概念
算法 对解题方案准确而完整的描述称为算法。
它是指令的有限序列,其中每一条指令表示一个或多个操作。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
第6页,共108页。
算法的基本特征:
(1)有穷性 (2)确定性 (3)可行性 (4)拥有足够的情报
(不必移动节点,只要改变节点中的指针)。 4.非随机存取。
第35页,共108页。
线性表
A.线性结构
栈
队 1.数据的逻辑结构
数
树形结构
据
B.非线性结构
结
构 的 三 个
2、数据的存储结构
A 顺序存储
图形结构
……
方 面
(亦称物理结构)
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
第36页,共108页。
构组合而成。
第11页,共108页。
#include <stdio.h>
#define PI 3.14159 int main() { float R, S;
do{ printf("Please input R:"); scanf("%f", &R);
if (R<0) printf("Error!\n"); }while(R<=0); s=PI*R*R;
数据结构的定义 数据的逻辑结构和存储结构 数据结构的图形表示 线性结构与非线性结构
第19页,共108页。
1.2.2 基本概念和术语
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
整数(能1输,2入)、到实计数算(机1.中1,1.2)
并能字被符计串算(B机ei程ji序ng处)、理的 符图号形的、集声合音。
第29页,共108页。
②图形结构
例:数据结构B(D,R)
D={ 1 , 2 , 3 , 4} R={(1,2) , (1,3) , (1,4) , (2,3), (3,4) , (2,4) }
1
4
2
3
例:数据结构C(D,R)
D={ 1 , 2 , 3 }
R={ <1,2>, <2,3>, <3,2>, <1,3>}
第32页,共108页。
2、链式存储 例:线性表(zhao,qian,sun,li,zhou,wu,zheng,wang)
链式存储结构:
存储地址
1
7
头指针 13
31
19
25
31
37
43
数据
li qian sun wang wu zhao zheng zhou
指针
43 13 1
null
37 7 19 25
for (j=2;j<=i-1;++j) ++x ;
基本运算: X增1
基本运算的执行次数:
i=2 0 i=3 1 i=4 2 … i=n n-2
时间复杂度: O((n*n-3n+2)/2)
1+2+3+…+(n-2)
= (n-1)(n-2)/2
O( n 2 )
第15页,共108页。
1.2.2 算法的空间复杂度
第9页,共108页。
例题:已知圆的半径,求圆的面积.
算法:
S1:输入圆的半径R;
S2:求面积∏R2;
S3:输出面积;
程序
#include <stdio.h>
#define PI 3.14159
int main() { float r, s;
do{ printf("Please input r:"); scanf("%f", &r); if (r<0) printf("Error!\n");
D) 算法程序中的指令条数
算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。
有穷性
算法的空间复杂度是指
A) 算法程序的长度 B) 算法程序中的指令条数
C) 算法程序所占的存储空间 D) 执行过程中所需要的存储空间
在计算机中,算法是指
A) 加工方法
B) 解题方案的准确而完整的描述
C) 排序方法
放弃该放弃的,选择轻装上阵
第4页,共108页。
一、 数据结构与算法
1. 算法的基本概念;算法复杂度的概念和意义(时间复杂度与空 间复杂度)。
2. 数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表 示;线性结构与非线性结构的概念。
3. 线性表的定义;线性表的顺序存储结构及其插入与删除运算。
(有零个或多个输入,有一个或多个输出) 一个算法有零个或多个输入,以刻画运算对象的初始 情况,所谓零个输入是指算法本身定出了初始条件; 一个算法有一个或多个输出,以反映对输入数据加工 后的结果。没有输出的算法是毫无意义的;
第7页,共108页。
描述算法的工具通常有传统流程图、N-S结构化流程 图、伪代码等。
例1:已知圆的半径,求圆的面积.
伪代码: S1:输入圆的半径R;
S2:求面积 ∏R2; S3:输出面积;
开始 输入R S=3.14 * R*R
输出S
结束
传统流程图
第8页,共108页。
算法与计算机程序
算法——是一组逻辑步骤 程序——用计算机语言描述的算法
算法是程序设计的核心
算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。
sun 1
wang null wu 37 zhao 7 zheng 19 zhou 25
H zhao li zheng
qian sun
zhou
wu
wang /
第34页,共108页。
链接存储结构特点:
1.比顺序存储结构多用空间(存储密度小) (每个节点都由数据域和指针域组成)。
2.逻辑上相邻的节点物理上不必相邻。 3.插入、删除灵活
一般是指执行这个算法所需要的内存空间 一个算法所占用的内存空间包括算法程序所占
的空间、输入的初始数据所占的存储空间以及 算法在执行过程中所需要的额外空间这3部分。
第16页,共108页。
例题讲解
算法的时间复杂度是指
A) 执行算法程序所需要的时间
B) 算法程序的长度
C) 算法执行过程中所需要的基本运算次数
而对于一个固定的规模,算法所执行的基本次数还与 特定的输入有关。
第14页,共108页。
例子2:++x;
基本运算: X增1
基本运算的执行次数: 1
时间复杂度: O( 1 )
例子3: for (i=1;i<=n;++i) ++x;
基本运算: X增1
基本运算的执行次数: n
时间复杂度: O( n )
例子4:for ( i=2;i<=n;++i)
4. 栈和队列的定义;栈和队列的顺序存储结构及其基本运算。
5. 线性单链表、双向链表与循环链表的结构及其基本运算。 6. 树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序
和后序遍历。 7. 顺序查找与二分法查找算法;基本排序算法(交换类排序,插
入类排序,选择类排序)。
第5页,共108页。
1.1 算法
}while(r<=0); s=PI*r*r;
printf("Area=%f\n", s);
return 0;
}
第10页,共108页。
1.1.2 算法的基本要素
1、对数据对象的运算和操作
算术运算 逻辑运算 关系运算 数据传输
2、算法的控制结构
算法中各操作之间的执行顺序 一个算法一般可以用顺序、选择、循环3种基本结
1
2
3
第30页,共108页。
(3)存储结构 1、顺序存储
存储地址 存储内容
Lo Lo+m
元素1 元素2
……..
Lo+(i-1)*m 元素i ……..
Lo+(n-1)*m 元素n
Loc(ai)=Lo+(i-1)*m
每个元素所占用
的存储单元个数
第31页,共108页。
例:线性表(zhao,qian,sun,li,zhou,wu,zheng,wang)
1.2.1 时间复杂度 是指执行算法所需要的计算工作量。
通常有事后统计法和事前分析估算法。
★算法的工作量用算法所执行的基本运算次数来度量.
★算法所执行的基本运算次数与问题的规模n有关(即算法所执
行的基本次数是问题规模的函数).
算法的工作量=f(n)
执行算法所需要的计算工作量和f(n)同步增长,记为: 时间复杂度=O(f(n))
第23页,共108页。
1.数据的逻辑结构:是指反映数据元素之间逻辑关系 的数据结构。它包括数据元素的集合和数据元素之间 的前后关系两个因素。
数据的逻辑结构简称数据结构。
数据结构可描述为 Group=(D,R)
有限个数据元素的集合
有限个数据元素间关系的集合
第24页,共108页。
数据元素(Data Element)
例:学生成绩表
学号 9861109 9861107 9861103
姓名 张卓 刘忠赏 胡孝臣
②栈——后进先出 ③队列——先进先出
成绩 100 95 86
第27页,共108页。
数据结构S=(D,R)
D={春,夏,秋,冬} R={<春,夏>,<夏,秋>,<秋,冬>}
用图形工具
什么型的数据结构? 线性结构
每个节点都由两部分组成: 数据域和指针域。
数据域存放元素本身的数据, 指针域存放指针。
数据元素之间逻辑上的联系由指 针来体现。
第33页,共108页。
通常我们把链表画成用箭头相链接的结点的序列,结点 之间的箭头表示链域中的指针。
存储地址
1
7
头指针 13
31
19
25
31
37
43
数据 指针
li
43
qian 13
春
夏
秋
冬
数据元素:用中间标有元素值的方框表示,称为结点 逻辑关系:用有向线段从前件指向后件(不引起误会 情况下,箭头可以省去)
第28页,共108页。
B.非线性结构
①树形结构
例:家庭成员数据结构可表示成
父亲 儿子 女儿
没有前件的结点称为根结点; 没有后件的结点称为终端结点 (叶子结点)
例:计算机文件管理系统也是典型的树形结构
数据元素是数据的基本单位,即数据集合 中的个体。
有时一个数据元素可由若干数据项
(Data Item)组成。数据项是数据的最小单 位。
数据元素亦称结点或记录。
第25页,共108页。
常用数据结构:
线性 图
树
第26页,共108页。
A.线性结构
①线性表
例:英文字母表
(A , B , C , ·······,X ,Y , Z)
printf("Area=%f\n", S);
return 0; }
算术运算
逻辑运算
关系运算 数据传输
顺序、选择、
循环3种基本 结构
第12页,共108页。
1.1.3 算法设计基本方法
列举法 归纳法 递推 递归(以简洁的形式设计和描述算法) 减半递推技术 回溯法
第13页,共108页。
1.2 算法复杂度
顺序存储结构:
存储地址
7
8
基地址 9
7
10
11
12
13
14
数据
zhao qian sun li zhou wu zheng wang
顺序存储结构,将逻辑上相邻的数据 元素存储在物理上相邻的存储单元里, 具有以下特点: 1.随机存取。
2.作插入或删除操作时,需移动大 量元数。
3.长度变化较大时,需按最大空间分 配。 4.表的容量难以扩充。
第20页,共108页。
计算机管理图书问题
在图书馆里有各种卡片:有按书名编排的、 有按作者编排的、有按分类编排
如何将查询图书的这些信息存入计算机中 既要考虑查询时间短,又要考虑节省空间
数据结构是一门研究数据组织、存 储和运算的一般方法的学科。
最简单的办法之一是建立一张表, 每一本书的信息在表中占一行,如
二级公共基础知识数据结构与 算法演示文稿
第1页,共108页。
二级公共基础知识数据结构与 算法
第2页,共108页。
第3页,共108页。
注意事项
公共基础知识部份的内容是属于计算机专业 本科生的专业课,知识点特别散,而且有 一定的难度。所以考生在学习的过程中, 一定要克服畏难情绪,跟上老师的节奏。 老师让记的,要记住。没做要求的,要学 会放弃。
第21页,共108页。
数据元素在 计算机中的表示
对数据结构中的节点进行
操作处理
(插入、删除、修改、查找、排序)
数据结构是一门研究数据组织、存
储和运算的一般方法的学科。
如何将0,1,2,3,4,5,6,7,8,9这10个数存放在 计算机中能最快地达到你所需要的目的? 目的不同,最佳的存储方方法就不同。
D) 查询方法
第17页,共108页。
算法分析的目的是
A) 找出数据结构的合理性 B) 找出算法中输入和输出之间的关系
C) 分析算法的易懂性和可靠性
D) 分析算法的效率以求改进
算法的工作量大小和实现算法所需的存储单元多少分别称为算法的 【1】 。
时间复杂度和空间复杂度
第18页,共108页。
1.2 数据结构
从大到小排列:9,8,7,6,5,4,3,2,1,0 输出偶数:0,2,4,6,8,1,3,5,7,9
第22页,共108页。
线性表
A.线性结构 栈
队 1.数据的逻辑结构
数
树形结构
据
B.非线性结构
结
构 的
图形结构
三 个
2、数据的存储结构 A 顺序存储
方
面
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
1.1.1 算法(algorithm)基本概念
算法 对解题方案准确而完整的描述称为算法。
它是指令的有限序列,其中每一条指令表示一个或多个操作。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
第6页,共108页。
算法的基本特征:
(1)有穷性 (2)确定性 (3)可行性 (4)拥有足够的情报
(不必移动节点,只要改变节点中的指针)。 4.非随机存取。
第35页,共108页。
线性表
A.线性结构
栈
队 1.数据的逻辑结构
数
树形结构
据
B.非线性结构
结
构 的 三 个
2、数据的存储结构
A 顺序存储
图形结构
……
方 面
(亦称物理结构)
B 链式存储
3、数据的运算:检索、排序、插入、删除、修改等。
第36页,共108页。
构组合而成。
第11页,共108页。
#include <stdio.h>
#define PI 3.14159 int main() { float R, S;
do{ printf("Please input R:"); scanf("%f", &R);
if (R<0) printf("Error!\n"); }while(R<=0); s=PI*R*R;
数据结构的定义 数据的逻辑结构和存储结构 数据结构的图形表示 线性结构与非线性结构
第19页,共108页。
1.2.2 基本概念和术语
数据结构是一门研究数据组织、 存储和运算的一般方法的学科。
整数(能1输,2入)、到实计数算(机1.中1,1.2)
并能字被符计串算(B机ei程ji序ng处)、理的 符图号形的、集声合音。
第29页,共108页。
②图形结构
例:数据结构B(D,R)
D={ 1 , 2 , 3 , 4} R={(1,2) , (1,3) , (1,4) , (2,3), (3,4) , (2,4) }
1
4
2
3
例:数据结构C(D,R)
D={ 1 , 2 , 3 }
R={ <1,2>, <2,3>, <3,2>, <1,3>}
第32页,共108页。
2、链式存储 例:线性表(zhao,qian,sun,li,zhou,wu,zheng,wang)
链式存储结构:
存储地址
1
7
头指针 13
31
19
25
31
37
43
数据
li qian sun wang wu zhao zheng zhou
指针
43 13 1
null
37 7 19 25
for (j=2;j<=i-1;++j) ++x ;
基本运算: X增1
基本运算的执行次数:
i=2 0 i=3 1 i=4 2 … i=n n-2
时间复杂度: O((n*n-3n+2)/2)
1+2+3+…+(n-2)
= (n-1)(n-2)/2
O( n 2 )
第15页,共108页。
1.2.2 算法的空间复杂度