- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件技术基础新ppt课件讲解
第2篇 数据结构;第7章 数据结构概述;数据结构的概念;(2)树形结构示例;(3)图形结构示例;(2)数据元素(data element)
数据元素是组成数据的基本单位。
数据元素是一个数据整体中相对独立的单位。但它还可以分割成若干个具有不同属性的项(字段),故不是组成数据的最小单位。;(4) 数据对象(data object)
是性质相同的数据元素组成的集合,是数据的一个子集。
例如,整数数据对象的集合可表示为N={0,±1,±2…….},字母字符数据对象的集合可表示为C={‘A’,’B’,…’Z’}。
;学号;(5) 数据结构(data structure)
是指相互之间存在一种或多种特定关系的数据元素所组成的集合。具体来说,数据结构包含三个方面的内容,即数据的逻辑结构,物理结构(数据的存贮结构)和对数据所施加的运算。;(1)数据的逻辑结构独立于计算机,是数据本身所固有的。
(2)物理结构(存贮结构)是逻辑结构在计算机存贮器中的映像,
必须依赖于计算机。
(3)运算是指所施加的一组操作总称。运算的定义直
接依赖于逻辑结构,但运算的实现必依赖于存贮结构。;;1. 数据类型(data type)
(1)定义
是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总称。
例如,高级语言中用到的整数数据类型,是指由-32768到32767中值构成的集合及一组操作(加、减、乘、除、乘方等)的总称。
(2)种类
初等种类:逻辑上不可分。
组合种类:由若干成分按某种结构组成。; 2. 数据的逻辑结构
? 数据的逻辑结构就是数据元素之间的逻辑关系。可以用一个二元组,给出其形式定义为
Data?Structure =(D,R)
其中,D是组成数据的数据元素的有限集合,R是数据元素之间的关系集合。;3.逻辑结构的分类
(1)线性结构
元素之间为一对一的线性关系,第一个元素无直接前驱,最后一个元素无直接后继,其余元素都有一个直接前驱和直接后继。
(2)非线性结构
元素之间为一对多或多对多的非线性关系,每个元素有多个直接前驱或多个直接后继。 ;数据结构在计算机中的表示(映像),也称存储结构。
1.顺序存贮(向量存贮)
所有元素存放在一片连续的存贮单元中,??辑上相邻的元素存放到计算机内存仍然相邻。
2 .链式存贮
所有元素存放在可以不连续的存贮单元中,但元素之间的关系可以通过地址确定,逻辑
上相邻的元素存放到计算机内存后不一定是相邻的。 ;3.索引存贮
使用该方存放元素的同时,还建立附加的索引表,索引表中的每一项称为索引项,索引项的一般形式是:(关键字,地址),其中的关键字是能唯一标识一个结点的那些数据项。
4 .散列存贮
通过构造散列函数,用函数的值来确定元素存放的地址。
;算法的描述;2.算法设计的要求
(1)正确性(correctness)
程序不含语法错;
程序对于几组输入数据能够得出满足规格说明要求的结果;
程序对于精心选择的典型、苛刻而带有刁难性的几组输入数据能够得出满足规格说明要求的结果;
程序对于一切合法的输入数据都能产生满足规格说明要求的结果。;(2)可读性(readability )
算法主要用于人的阅读与交流。
(3)健壮性(roubustness)
当有非法数据输入时,算法能做出适当的调整。
(4)效率与低存储量需求
要求速度快,存储容量小。;3 .算法效率的度量 ;例 求下列算法段的语句频度
?
for(i=1; i=n; i++)
for(j =1; j =i ; j++)
x=x+1;
?
分析:该算法为一个二重循环,执行次数为内、外循环次数相乘,但内循环次数不固定,与外循环有关,因些,时间频度T(n)=1+2+3+…+n= ;时间复杂度
在刚才提到的时间频度中,n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律。为此,我们引入时间复杂度概念。
设T(n)的一个辅助函数为g(n),定义为当n大于等于某一足够大的正整数n0时,存在两个正的常数A和B(其中A≤B),使得A≤T(n)/g(n)≤B均成立,则称g(n)是T(n)的同数量级函数。把 T(n)表示成数量级的形式为:T(n)=O(g(n)),其中大写字母O为英文Order(即数量级)一词的第一个字母。
; 例如,若T(n)=n(n+1)/2,则有 1/4≤T(n)/n2≤1,故它的时间复杂度为O(n2), 即T(n)与n2 数量级相同。
;分析算法规律可知时间频度
T(n)=1+(1+2)+(1+2+3)+...+(1+2+3+…+n)
=
=
= +
= [
文档评论(0)