数据结构第二版.ppt
数据结构(第二版),严蔚敏 吴伟民 清华大学出版社,第一章 绪论,1.1 的主要内容 1.2 基本术语 1.3 算法描述及分析,1.1 的主要内容,99080-3 班号 3202670 计算机学院办公室电话号码610054 电子科技大学邮编510102780618748 身份证号码,例1:99080-33202670610054510102780618748,结论1.杂乱的数据不能表达和交流信息,1.1 的主要内容,例2:电话号码簿(a1,b1)(a2,b2)(an,bn)其中:ai为某人姓名,bi为该人的电话号码。要求:设计一个算法,给定一个姓名时,能查出此人的电话号码。,如果姓名和电话号码的排列次序无规律,则只能逐一比较姓名进行查找 如果姓名按字典顺序组织,则查找就快捷多了,结论2.数据之间是有联系的这些联系常常影响算法的选择和效率。DS就是要研究数据之间的联系。,1.1 的主要内容,例3:大学学生管理机构学校一系八系一年级二年级三年级四年级班班张三李四,结论数据之间是有结构的例中数据之间呈分层结构(树状结构)DS就是要研究数据之间的各类结构。,1.1 的主要内容,例:图书目录管理设每个书目含:书名,作者,登录号,分类,出版年月对图书目录常有如下操作:查找:某书在书库中是否存在?插入:购进新书时的登录;删除:报废或丢失的书,需从目录中去掉;,结论在某种数据结构上可定义一组运算DS就是要研究各类数据结构上的各种运算。,1.1 的主要内容,综上所述:DS主要研究内容:数据的各种逻辑结构和物理结构,以及它们之间的相应关系;对每种结构定义相适应的各种运算;设计出相应的算法;分析算法的效率。,常见的数据结构有:数组、栈、队列、表、串、树、图和文件等。,数据结构与问题求解,1.在计算机中建立一个与实际问题有比较密切对应关系的模型;2.计算机内部的数据 表示了需要被处理的实际对象,包括其内在的性质和关系;3.处理这些数据的程序 则模拟对象领域中的实际过程;4.将计算机程序的运行结果 在实际领域中给予解释,便得到实际问题的解。,1.2 基本术语,数据(Data):所有能被计算机处理的符号的集合。数据元素(Data Element):是数据这个集合中的一个个体。设给定数据集合为:D=d1,d2,dn则di属于D,并称di为数据元素。数据项(Data Item):数据元素常常还可分为若干个数据项,数据项是数据具有意义的最小单位。,1.2 基本术语,数据对象(Data Object):具有相同特性的数据元素的集合。例如:数据集合D=0,1,A,B,Z则:数据对象正整数N 0,1,数据对象字母C A,B,Z 数据元素是数据的一个个体,数据对象是数据的一个子集。,1.2 基本术语,数据结构(Data Structure):是带有结构的数据元素的集合。所谓结构就是数据元素之间的关系,即描述数据元素之间的运算及运算规则。用集合的形式描述,数据结构是一个二元组:DS=(D,R)其中:D是数据元素的集合,R是D上关系的集合。简言之,数据元素和其相互关系称为数据结构,1.2 基本术语,逻辑结构(Logical Structure):指数据元素之间的结构关系。物理结构(Physical Structure):指数据结构在机内的表示,也称为存储结构。,1.3 算法描述和算法分析,一算法(Algorithm)算法概念:算法是一个有限的指令集,遵循指令流可以完成特定的功能。,算法基本特性:有穷性:算法经有限步后结束;确定性:下一步必须是明确的;可行性:每一步是可执行的;,1.3 算法描述和算法分析,算法与程序的区别算法 是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。程序 是用某种程序设计语言对算法的具体实现。,主要区别在:有穷性 和描述方法 程序可以是无穷的,例如OS,算法是有穷的;程序是用程序设计语言描述,在机器上可以执行;算法还可以用框图、自然语言等方式描述。,1.3 算法描述和算法分析,二算法描述语言类Pascal为了便于理解掌握算法的思想和实质,本课程采用类Pascal语言来描述各种算法。所有的算法均以过程或函数的形式表示;PROC过程名(参数表);算法说明语句组ENDP;过程名,1.3 算法描述和算法分析,FUNC 函数名(参数表):类型;函数说明语句组 RETURN(f)ENDF;函数名调用过程语句为:过程名(参数表)调用函数语句为:变量名:函数名(参数表),1.3 算法描述和算法分析,出错语句:ERROR(出错信息);注释语句:注释内容语句结束符号:;语句组符号:基本函数:max()、min()、abs()、eof、eoln布尔运算:AND、OR、NOT、CAND、COR,1.3 算法描述和算法分析,赋值语句:变量名:表达式;分支语句:IF 条件 THEN 语句ELSE语句;CASE 条件:语句;条件n:语句n;(ELSE 语句n+1)ENDC;,1.3 算法描述和算法分析,循环语句:FOR 变量名:初值 TO 终值 DO 循环体;FOR 变量名:初值 DOWNTO 终值 DO 循环体;WHILE 条件 DO 循环体;REPEAT 循环体 UNTIL 条件;标准输入输出过程:read(变量表);write(变量表);,1.3 算法描述和算法分析,三算法分析如何衡量一个正确算法的好坏?衡量的三个尺度:运行所花费的时间(算法的时间特性);所占用存储空间的大小(算法的空间特性);其他(可读性、易调性、健壮性等)。时间和空间特性的巨大改进源于更好的数据结构或算法。,1.3 算法描述和算法分析,语句频度(Frequency Count):语句可能重复执行的最大次数。时间复杂度(Time Complexity):设算法中所有语句的语句频度为t(n),f(n)是当n趋向无穷大时与t(n)为同阶无穷大,则算法的时间复杂度T(n)=O(f(n)其中:n为算法计算量或称为规模(size);f(n)是运算时间随n增大时的增长率;O(f(n)是算法时间特性的量度。,第一章小结,数据结构概念算法时间复杂度,