电子科数据结构pascal版课件ds第一章_第1页
电子科数据结构pascal版课件ds第一章_第2页
电子科数据结构pascal版课件ds第一章_第3页
电子科数据结构pascal版课件ds第一章_第4页
电子科数据结构pascal版课件ds第一章_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构(第二版)严蔚敏吴伟民

清华大学出版社主讲:王晓斌

电子科技大学计算机学院1.1学习<数据结构>的要求1.掌握各类基本数据结构类型和相应的存储结构2.提高阅读和编写算法的能力3.能针对给定问题,选择相适应的数据结构,并能设计和分析算法1.2<数据结构>的主要内容2108006011班号83202670计算机学院办公室电话号码610054电子科技大学邮编身份证号码例1:187482结论1.

杂乱的数据不能表达和交流信息1.2<数据结构>的主要内容例2: 电话号码簿(a1,b1)(a2,b2)…(an,bn)其中:ai为某人姓名,bi为该人的电话号码。要求:设计一个算法,给定一个姓名时,能查出此人的电话号码。如果姓名和电话号码的排列次序无规律,则只能逐一比较姓名进行查找如果姓名按字典顺序组织,则查找就快捷多了结论2. 数据之间是有联系的这些联系常常影响算法的选择和效率。《DS》就是要研究数据之间的联系。1.2<数据结构>的主要内容例3:大学学生管理机构

学校 一系...八系...

一年级二年级三年级四年级

1班...8班张三...李四结论3. 数据之间是有结构的例3中数据之间呈分层结构(树状结构)《DS》就是要研究数据之间的各类结构。1.2<数据结构>的主要内容例4:图书目录管理设每个书目含:书名,作者,登录号,分类号,出版年月,对图书目录常有如下操作:查找:某书在书库中是否存在?插入:购进新书时的登录;删除:报废或丢失的书,需从目录中去掉;结论4. 在某种数据结构上可定义一组运算《DS》就是要研究各类数据结构上的各种运算。1.2<数据结构>的主要内容综上所述:《DS》主要研究内容:计算机的操作对象——数据;数据的各种逻辑结构和物理结构,以及它们之间的相应关系;并对每种结构定义相适应的各种运算;设计出相应的算法;分析算法的效率。常见的数据结构有:数组、栈、队列、表、串、树、图和文件等。1.3基本术语数据(Data):所有能被计算机处理的符号的集合。数据元素(DataElement):是数据这个集合中的一个个体。设给定数据集合为:

D={d1,d2,...,dn}

则di属于D,并称di为数据元素。数据项(DataItem):数据元素常常还可分为若干个数据项,数据项是数据具有意义的最小单位。1.3基本术语数据对象(DataObject):具有相同特性的数据元素的集合。例如:数据集合D={0,1,…,A,B,…,Z}则:数据对象正整数N={0,1,…}

数据对象字母C={A,B,…,Z} 数据元素是数据的一个个体, 数据对象是数据的一个子集。1.3基本术语数据结构(DataStructure):是带有结构的数据元素的集合。

所谓结构就是数据元素之间的关系,可有一种或多种特定的关系。用集合的形式描述,数据结构是一个二元组:

DS=(D,R)

其中:D是数据元素的有限集,R是D上关系的有限集。简言之,数据元素和其相互关系称为数据结构1.3基本术语例1:复数的表示

Complex=(C,R)C={c1,c2|c1,c2是实数}

R={P}P={<c1,c2>|c1,c2C}1.3基本术语例2:课题小组的描述

Group=(P,R)P={T,G1,…,Gn,S11,…,Snm|1n3,1m2}

R={R1,R2}R1={<T,Gi>|1in,1n3}R2={<Gi,Sij>|1in,1jm,1n3,1m2}1.3基本术语逻辑结构(LogicalStructure):指数据元素之间的结构关系。物理结构(PhysicalStructure):指数据结构在机内的表示。也称存储结构,通常有顺序存储结构和链式存储结构。一点说明:算法的设计取决于逻辑结构;算法的实现依赖于存储结构。1.3基本术语数据类型(DataType):一个值的集合和定义在这个值集上的操作的总称。基本操作的分类:引用型——查找;加工型——插入、删除、更新、排序。1.4算法描述和算法分析一.算法(Algorithm)1.算法概念:算法是对特定问题求解步骤的一种描述,是指令的有限序列。2.算法基本特性:

有穷性:算法经有限步后结束;

确定性:每一步必须有明确的含义;

可行性:每一步是可执行的。1.4算法描述和算法分析3.算法与程序的区别算法是解决问题的一种方法或一个过程,考虑如何将输入转换成输出,一个问题可以有多种算法。程序是用某种程序设计语言对算法的具体实现。主要区别在:有穷性和描述方法程序可以是无穷的,例如OS,算法是有穷的;程序是用程序设计语言描述,在机器上可以执行;算法还可以用框图、自然语言等方式描述。1.4算法描述和算法分析二.算法描述语言——类Pascal

为了便于理解掌握算法的思想和实质,本课程采用类Pascal语言来描述各种算法。所有的算法均以过程或函数的形式表示;

PROC

过程名(参数表);{算法说明}语句组

ENDP;{过程名}1.4算法描述和算法分析

FUNC函数名(参数表):类型;{函数说明}语句组

RETURN(f)

ENDF;{函数名}

可有若干值参或变参;参数必须说明类型,局部变量可省缺说明;过程或函数均允许嵌套或递归调用1.4算法描述和算法分析布尔运算:AND、OR、NOT、CAND、CORCAND和COR称为DelayComputation,其含义

ACANDB:ifAthenBelsefalseACORB:ifAthentrueelseB1.4算法描述和算法分析例1:用过程实现求n!PROCfac1(n:integer;VARf:integer);ifn<0thenERROR;f:=1;fori:=1TOnDOf:=f*iENDP;1.4算法描述和算法分析例2:用函数实现求n!FUNCfac2(n:integer):integer;ifn<0thenERROR;f:=1;fori:=1TOnDOf:=f*i;RETURN(f)ENDF;1.4算法描述和算法分析例3:用递归函数实现求n!FUNCfac3(n:integer):integer;ifn<0thenERROR;ifn=0thenRETURN(1);RETURN(n*fac3(n-1))ENDF;1.4算法描述和算法分析例4:将x、y、z中的整数值由大到小排列PROCsort(VARx,y,z:integer);ifx<ythen[t:=x;x:=y;y:=t];ify<zthen[t:=z;z:=y;ifxttheny:=telse[y:=x;x:=t]]ENDP;1.4算法描述和算法分析三.算法分析 如何衡量一个正确算法的好坏? 衡量的三个尺度:运行所花费的时间(算法的时间特性);所占用存储空间的大小(算法的空间特性);其它(正确性、可读性、健壮性等)。 时间和空间特性的巨大改进源于更好的数据结构或算法。1.4算法描述和算法分析语句频度(FrequencyCount):

语句可能重复执行的最大次数。时间复杂度(TimeComplexity):

设算法中所有语句的语句频度为t(n), f(n)是当n趋向无穷大时与t(n)为同阶无穷大, 则算法的时间复杂度T(n)=O(f(n))

其中:n为算法计算量或称为规模(size); f(n)是运算时间随n增大时的增长率;

O(f(n))是算法时间特性的量度。1.4算法描述和算法分析例:程序段语句频度时间复杂度1.x:=x+1;1O(1)常数阶2.FORi:=1TOnDOx:=x+1;n+1O(n)线性阶3.FORi:=1TOnDOn+1FORj:=1TOnDOx:=x+1;n(n+1)O(n2)平方阶1.4算法描述和算法分析4.FORi:=2TOnDOnFORj:=2TOi-1DOn(n-1)/2x:=x+1;(n-1)(n-2)/2O(n2)平方阶5.FORi:=1TOnDOn+1FORj:=1TOnDOn(n+1)[c[i,j]:=0;n2FORk:=1TOnDOn2(n+1)c[i,j]:=c[i,j]+a[i,k]*b[k,j]n3O(n3)]1.4算法描述和算法分析6.有时,考虑最坏情形PROCbubble-sort(VARa:ARRAY[1..n]OFinteger);i:=1;REPEATchange:=false;FORj:=1TOn-iDOIF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论