数据结构与数据库.ppt

上传人:牧羊曲112 文档编号:4980174 上传时间:2023-05-27 格式:PPT 页数:42 大小:220.13KB
返回 下载 相关 举报
数据结构与数据库.ppt_第1页
第1页 / 共42页
数据结构与数据库.ppt_第2页
第2页 / 共42页
数据结构与数据库.ppt_第3页
第3页 / 共42页
数据结构与数据库.ppt_第4页
第4页 / 共42页
数据结构与数据库.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《数据结构与数据库.ppt》由会员分享,可在线阅读,更多相关《数据结构与数据库.ppt(42页珍藏版)》请在三一办公上搜索。

1、数据结构与数据库,第一部分 数据结构,教材数据结构(c语言版),严蔚敏等编著,清华大学出版社,1997数据结构题集(c语言版),严蔚敏等编著,清华大学出版社,1999,参考书数据结构(第二版),唐策善、黄刘生 编著,中国科大出版社,2001 Data Structures with C+,Williaw Ford et al.,Prentice Hall Inc.,1996.Data Structures&Program Design in C,2nd Ed.,Robert Kruse et al.,Prentice Hall Inc.,1997.,什么是数据结构基本概念和术语抽象数据类型算法

2、分析性能分析与度量,第一章 绪论,学生成绩表格,选课单,UNIX文件系统结构图,综上,描述这类非数值计算问题的数学模型不是数学方程,而是树、表和图之类的数据结构。因此从广义上讲,数据结构描述现实世界实体的数学模型及其上的操作在计算机中的表示和实现.,信息?数据?知识?,?,基本概念和术语,数据(Data)是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。数值性数据非数值性数据,数据元素(Data Element)数据的基本单位。在计算机程序中常作为一个整体进行考虑和处理。有时一个数据元素可以由若干数据项(Data Item)组成。数据项是数据

3、的不可分割的最小单位。数据元素又称为元素、结点、记录,数据项(Data Item),数据对象(Data Object)具有相同性质的数据元素的集合。整数数据对象 N=0,1,2,字母字符数据对象C=A,B,C,F,数据结构(Data Structure)形式定义:某一数据对象的所有数据成员之间的关系。记为:Data_Structure=D,S 其中,D 是某一数据对象,S 是该对象中所有数据成员之间的关系的有限集合。,序偶:一般来说,两个具有固定次序的客体组成一个序偶,常常表示两个客体之间的关系。记作。其中的x 和 y 分别称为第一元素和第二元素。如:“中国地处亚洲”表示为 序偶具有确定的次序

4、。=,iff x=u,y=v第一元素本身也可是一序偶。这样,序偶的概念可推广到n 元组。如:三元组可定义为一序偶,z,关系:任一序偶的集合确定了一个二元关系R,R中任一序偶可记做 xRy。例如,在实数中关系 可记作=|x,y是实数且xy 数据结构的一个例子(例1.5)Group=(P,R),四类基本结构集合线性结构树形结构 网状结构,数据的逻辑结构从逻辑关系上描述数据,与数据的存储无关;从具体问题抽象出来的数据模型;与数据元素本身的形式、内容无关;与数据元素的相对位置无关。,数据的逻辑结构分类线性结构 线性表非线性结构 树 图(或网络),user,线性结构,树形结构 树 二叉树 二叉排序树,堆

5、结构,12,3,5,4,8,7,11,10,2,9,1,6,图结构 网络结构,数据的存储结构数据结构在计算机中的表示(又称映象)。包括数据元素的表示和关系的 表示。数据元素的表示:位串(元素、结点)关系的表示 顺序映象 非顺序映象,抽象数据类型(Abstract Data Type),数据类型 定义:一个值的集合和定义在这个值集上的一组操作的总称。C语言中的基本数据类型 int char float double void 整型 字符型 浮点型 双精度型 无值,抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作数据结构+定义在此数据结构上的一组操作=抽象数据类型 例如:矩阵+(求转置

6、、加、乘、求逆、求特征值)构成一个矩阵的抽象数据类型,抽象数据类型的描述抽象数据类型可用(D,S,P)三元组表示其中,D是数据对象,S是D上的关系集,P是对D的基本操作集。ADT 抽象数据类型名 数据对象:数据对象的定义 数据关系:数据关系的定义 基本操作:基本操作的定义 ADT 抽象数据类型名,其中,数据对象、数据关系用伪码描述;基本操作定义格式为基本操作名(参数表)初始条件:初始条件描述操作结果:操作结果描述基本操作有两种参数:赋值参数只为操作提供输入值;引用参数以&打头,除可提供输入值外,还将返回操作结果。“初始条件”描述了操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并

7、返回相应出错信息。“操作结果”说明了操作正常完成之后,数据结构的变化状况和应返回的结果。若初始条件为空,则省略之。,抽象数据类型的表示和实现 抽象数据类型可以通过固有数据类型(高级编程语言中已实现的数据类型)来实现抽象数据类型 类 class数据对象 数据成员基本操作 成员函数(方法)在C+中,类的成分(数据成员和成员函数)可以有三种访问级别Private 私有成分(只允许类的成员函数进行访问)protected 保护成分(只允许类的成员函数及其子孙类进行访问)public 公有成分(允许类的成员函数、类的实例及其子孙类、子孙类的实例进行访问),算法和算法分析,定义:为了解决某类问题而规定的一

8、个有限长的操作序列。特性:有穷性 算法在执行有穷步后能结束确定性 每步定义都是确切、无歧义可行性 每一条运算应足够基本输入 有0个或多个输入 输出 有一个或多个输出,算法设计例子:选择排序问题:递增排序解决方案:逐个选择最小数据算法框架:for(int i=0;i n-1;i+)/n-1趟 从ai检查到an-1;若最小整数在ak,交换ai与ak;细化:Select Sort,void selectSort(int a,int n)/对n个整数a0,a1,an-1按递增顺序排序 for(int i=0;i n-1;i+)int k=i;for(int j=i+1;j n;j+)if(aj ak)

9、k=j;/从ai查到an-1,找最小整数,在ak int temp=ai;ai=ak;ak=temp;,性能分析与度量,算法的性能标准正确性可读性健壮性效率(时间、空间),算法的事后统计(后期测试)在算法中的某些部位插装时间函数time(),测定算法完成某一功能所花费时间 double start,stop;time(,int seqsearch(int a,int n,int x)/在a0,an-1中搜索x int i=0;while(i n,算法的事前估计时间复杂度度量运行时间=算法中每条语句执行时间之和。每条语句执行时间=该语句的执行次数(频度)*语句执行一次所需时间。语句执行一次所需时

10、间取决于机器的指令性能和速度和编译所产生的代码质量,很难确定。设每条语句执行一次所需时间为单位时间,则一个算法的运行时间就是该算法中所有语句的频度之和。,举例 1,矩阵相乘算法 for(i=1;i=n;+i)/n+1 for(j=1;j=n;+j)/n(n+1)c i j=0;/n2 for(k=1;k=n;+k)/n2(n+1)c i j+=a i k*b k j;/n3 则 算法执行时间T(n)为所有语句的频度之和。T(n)=n+1+n(n+1)+n3=2n3+3n2+2n+1,渐进时间复杂度 引入“O”记号,以体现随问题规模n的增长率。T(n)=n+1+n(n+1)+n3=2n3+3n2

11、+2n+1 O(n3),其中n3 为增长最快的项。最坏时间复杂度 vs.平均时间复杂度 有时算法基本操作重复执行次数还随问题的输入数据集不同而不同(如一些排序算法)。这时可分析最坏时间复杂度(最坏情况下的时间复杂度)和平均时间复杂度(平均情况下的时间复杂度),估计算法时间的通常做法:根据问题(或算法类型),从算法中选取一种原操作(指固有数据类型的操作)作为基本操作。其重复执行次数应与算法执行时间成正比;一般为最深层循环内的语句中的原操作;用该基本操作重复执行的次数作为算法的时间度量。即统计包含该操作的所有语句的频度之和。如:上例中选取乘法为基本操作;算法执行时间 T(n)则正比于乘法所在语句的

12、频度n3,记为T(n)=O(n3),试估计以下程序段 的时间复杂度 for(i=1;i=n;+i)for(j=1;j=i;+j)for(k=1;k=j;+k)x+基本操作执行次数为 因此 T(n)=O(n3),举例 2,空间复杂度度量存储空间的固定部分程序指令代码的空间,常数、简单变量、定长成分(如数组元素、结构成分、对象的数据成员等)变量所占空间可变部分尺寸与实例特性有关的成分变量所占空间、引用变量所占空间、递归栈所用空间、通过new和delete命令动态使用空间空间复杂度 原地工作(额外空间相对输入数据量来说是常数),常见时间复杂度,O(1)常数阶O(n)线性阶O(n2)平方阶O(nb)多项式阶O(ln n)对数阶O(2n)指数阶常见函数的增长率(图1.7),作业,课后阅读:习题集第1-6页。习题:习题集page 9 1.8(8),

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号