ImageVerifierCode 换一换
格式:PPT , 页数:27 ,大小:673.50KB ,
资源ID:10306072      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10306072.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(数据结构--PPT.ppt)为本站上传会员【人****来】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

数据结构--PPT.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,数 据 结 构,-,1,第一章 绪 论,1.1,数据结构研究什么?,将现实世界中的数据描述及关系表示出来,并存储到计算机内,供用户程序操作。,现实世界中的数据描述及关系:,4,种:离散型,线性结构,层次结构,网状结构。,离散数学:研究离散型。,数据结构:研究线性结构,层次结构和网状结构。,线性结构:线性表表示。,层次结构:,树形结构表示。,网状结构:图结构表示。,数据结构研究:数据逻辑结构,存储结构及施加其上的运算。,2,例,1,L=(20,-5,66,15,44),是一个线性表,例,2,一张,登记表,D

2、L,序号 姓 名 性 别 年 龄,1,李 刚 男,25,记录,1,2,王 霞 女,29,记录,2,3,刘大海 男,40,记录,3,4,李爱林 男,44,记录,4,其中:姓名、性别、年龄是,数据项,(item),、,数据域,(field),;,(,姓名,性别,年龄,),是,记录,(record),C,语言将,记录,(record),定义为,”,结构,”,(struct),;,登记表也是一个线性表。,3,例,3,家族中,父子关系是一种,层次结构,-,树,T,张一,张三,张二一,张三一,张三小,张三大,张二,张四,层次结构:,部门之间的隶属关系:,学校,-,系,-,科,-,班,领导和被领导之间领导关

3、系:,主席,-,部长,-,司长,-,处长,-,科长,4,例,4,无向图,G,A,B,D,C,E,F,G,其中:,A,、,B,、,C,等是,顶点,(vertex),图中任意两个顶点之间都可能有关系。,网络结构:,电网,电信网,计算机通信网等。,5,1.,基本数据结构的定义、特性、运算与算法,1.1,线性结构:线性表;栈,队列,双队列;数组,串。,1.2,非线性结构:树,二叉树;图,网络。,2.,数据结构的存储结构与实现,选择存储结构,设计算法,3.,查找算法:顺序,折半,分块,哈希,二叉排序树等,4.,排序算法:内部排序,外部排序,5.,文件,6.,基本应用与综合应用,要求具备的知识:,c,语言

4、及程序设计,具有一定的程序设计能力。,本课程的内容和任务,6,1.2,基本概念和术语,1.,数据(,data),-,所有能输入到计算机中并被计算机程序加工、处理,的符号的总称。,如:整数、实数、字符、声音、图象、图形等。,2.,数据元素,(data element),-,数据的基本单位。(元素、记录、结点、顶点),在计算机程序中通常作为一个整体进行考虑和处理。,3.,数据项,(data item),-,是数据的不可分割的最小单位。如:姓名、年龄等,一个数据元素可由一个或多个数据项组成。,如,:(,姓名、年龄,),7,4.,数据对象,(data object),由性质相同,(,类型相同,),的数

5、据元素组成的集合。,数据对象是数据的一个子集。,例,1,由,4,个整数组成的数据对象,D1=20,-30,88,45,例,2,由正整数组成的数据对象,D2=1,2,3,.,例,3,由,26,个字母组成的数据对象,D3=A,B,C,.,Z,其中:,D1,,,D3,是有穷集,,D2,是无穷集。,5.,抽象数据对象,ElemSet,=,某种同类型的数据元素,8,6.,数据结构,(data structure),-,数据之间的相互关系,即数据的组织形式。,内容,包括:数据逻辑结构、数据存储结构和数据运算。,数据逻辑结构:数据元素之间的逻辑关系。,数据存储结构:数据元素及其关系在存储器中的存储表示。,数

6、据运算:定义在数据逻辑结构上的操作。如:查询,插入,,删除和修改,排序等。,数据逻辑结构有两大类:,线性结构,:特征:若结构是非空集,则仅有一个开始结点和一个终止结点;其他结点都只有一个前趋结点和一个后继结点。,非线性结构,:特征:一个结点有多个前趋结点和后继结点。,数据存储结构有,4,种:顺序存储结构,链接存储结构,索引存储结构和散列存储结构。,9,数据逻辑结构和存储结构与运算三者之间有紧密的关系:,如:给定一种数据的逻辑结构,可采取顺序存储结构或,链接存储结构进行存储;,按定义的运算和运算性质的不同,施加于同一数据结构,上,则会导致有不同的种类的数据结构产生。,如:限制在线性表的一端做插入

7、和删除操作,称该线,性表为栈;,若限制在线性表的一端插入,另一端删除操作,称该,线性表为队。,其栈和队都有顺序存储结构或链接存储结构,则它们存储结构称为:顺序栈,链式栈,顺序队,链式队。,10,1.,线性表,2.,栈,线性结构,3.,队列,双队列,4.,数组,数据结构,5.,字符串,非 线 性,1.,树,二叉树,结 构,2.,图,数据逻辑结构,分类,11,数据顺序,存储结构和链式存储结构(,物理结构,存储表示,物理表示,),数据结构在计算机存储器中的,映象,(mapping),。,(1),顺序存储结构,(,向量,一维数组,),例,.char a5=A,B,C,D,;,A B C D E,0 1

8、 2 3 4,a,是一维数组,(2),非顺序存储结构,(,链接表:指针类型和结构类型定义),例,.,单链表,data next,Head A B C D ,4,个结点的单链表,12,7.,数据类型(,data type),-,是一个值的集合和定义在这个值上的一组操作的总称。,用数据类型定义数据结构。,(1),原子类型,(,如:,int,char,float,等,),(2),结构类型,(,如:数组,结构,联合体等),8.,抽象数据类型,(Abstract Data Type)-,与计算机的实现无关的数据类型。,形式定义:,ADT,抽象数据类型名,1.,数据对象;,2.,数据关系,:,一个或多个关

9、系;,3.,一组基本操作,/,运算,ADT,抽象数据类型名,注意,:常用,DataType,表示抽象元素类型。,13,1.3,算法和算法分析 数据的运算是通过算法描述的。,1.,算法,-,求解一个特定任务的指令的有限序列。,例,.,求,a0.n-1,中,n,个数的平均值,(,假定,n0),。,float average(float a,int n),int i,;,float s=0.0,;,/,累加器赋初值,for(i=0,;,in,;,i+),s=s+ai,;,/ai,累加到,s,中,s=s/n,;,/,计算平均值,printf(,“,ave=%f,”,s),;,/,输出,return(s

10、),;,/,返回,其中:,a,n,为输入量;,s,为输出量。,14,2.,算法的,5,个特征,(1),有穷性,:在有限步,(,或有限时间,),之后算法终止。,例,.i=0,;,s=0,;,while(i10),s+,;,i+,;,(2),确定性,:无二义性。,例,.x=5,;,y=10,;,z=x+y,;,printf(,“,%d,%d,%d,”,x,y,z),;,x+y,解释为:,x+(+y),?,(x+)+y,?,15,(3),可行性,:可以在计算机上实现。,for(i=1,s=0,;,i=0,;,i+)/,死循环,s+,;,/,不能终止,例,2,float suanfa2(),int x

11、y,;,scanf(,“,%d,”,&x),;,y=sqrt(x),;,/,当,x0,时,出错,return(y),;,17,4.,算法,的,时间复杂度,衡量算法性能:,a.,算法正确性;,b.,执行算法所消耗的时间;,c.,执行算法所消耗的空间(主要考虑辅存空间);,d.,算法易读易理解,易于编码,易于调试等。,主要讨论算法执行时间。,算法所消耗的时间:算法中每条语句执行时间之和。,每条语句执行时间,=,语句的执行次数,一次执行该语句的时间。,语句的频度:设,n,为求解的,问题的规模,基本操作,(,或语句,),执行次数总和称为,语句频度,记作,f(n),。,问题的规模,n,:指线性表的长度

12、多项式的项数,矩阵的阶数,树的结点数,图中的顶点或边数等。,注:一次执行语句的时间是很难精确算出的:它与机器的执行速度,编译程序编译质量及运行环境等因素有关。,算法所消耗的时间粗略地用算法中语句执行的最大次数来度量。,18,/,求两个,n,阶方阵的乘积:,C=A*B,#define n 100,int Multiply(int ann,int bnn,int cnn),int j,i,k,;语句的频度,f(n),(1)for(i=0,;,in,;,i+)n+1,(2)for(j=0,;,jn,;,j+)n(n+1),(3)cij=0,;,n,2,(4)for(k=0,;,kn,;,k+)n,

13、2,(n+1),(5)cij=cij+aik*bkj,;,n,3,算法所消耗的时间就是所有语句频度之和,T(n):,T(n)=2n,3,+3n,2,+2n+1 T(n),是矩阵的阶数,n,的函数。,当,n,,,2n,3,+3n,2,+2n+1,与,n,3,同阶,即同一数量级。记为:,T(n)=O(f(n)=O(n,3,),即与,f(n),中最高的阶相同。,19,例,1 int s,;语句的频度,f(n),scanf(,“,%d,”,&s),;,1,s+,;,1,printf(,“,%d,”,s),;,1,其中:语句频度为:,f(n)=f(1)=3,与问题规模,n,无关的常数。,时间复杂度为:,

14、T(n)=O(f(n)=O(3)=O(1,),O(1),称成为常量阶,/,常量数量级,只要算法的执行时间不随问题规模,n,增大而增长,即使算法中有上千条语句,其执行的时间只不过是一个较大的常数,算法的时间复杂度仍然是常数阶,O(1),。,20,例,2,分析下面的算法,void sum(int a,int n)f(n,),int s=0,i,;,/1,次,for(i=0,;,in,;,i+)/n,次,s=s+ai,;,/,n,次,printf(,“,%d,”,s),;,/1,次,其中:语句频度为:,f(n)=1+n+n+1,时间复杂度为:,T(n)=O(f(n)=O(2n+2)=O(,n,),O

15、n),称成为线性阶,/,线性数量级,一般情况下,对步进循环,只考虑循环体中的语句执行的次数,可忽略步长加,1,,终值判断,控制转移等成分。,21,例,3,分析下面的算法,1.void sum(int m,int n),2.int i,j,s=0,;,/1,次,3.for(i=1,;,i=m,;,i+)/m,次,4.for(j=1,;,j=n,;,j+)/m*n,次,5.s+,;,/,m*n,次,6.printf(,“,%d,”,s),;,/m,次,7.,8.,其中,:f(m,n)=1+m+2*m*n+m=2mn+2m+1,当,m=n,时,f(n)=2n,2,+2n+1,T(n)=O(f(n)

16、O(2n,2,+2n+1)=O(,n,2,),平方阶。,对嵌套层次的循环结构,时间的复杂度,T(n),由最内层循环体语句的频度,f(n),决定。,22,例,4,分析下面的算法,1.void sum(int n),2.int i,j,s=0,;,/1,次,3.for(i=1,;,i=n,;,i+)/n,次,4.for(j=1,;,j=0&(ai!=k),(3)i-;,(4)return i;,(3),语句的频度不仅问题规模,n,有关,而且与,a,数组各元素和,k,的取值有关。若,a,中没有要找的,k,值,,(3),语句的频度为,f(n)=n;,若,a,中最前一个元素是要找的,k,,则,(3),

17、语句的频度为常数,0,。在这种情况下,,采用最坏的时间复杂度作为算法的时间复杂度:,T(n)=0(n),24,常用时间复杂度递增依次为:,常数阶,O(1),对数阶,O(log,2,n),线性阶,O(n),线性对数阶,O(nlog,2,n),平方阶,O(n,2,),立方阶,O(n,3,),K,方阶,O(n,k,),,,指数阶,O(2,n,),。,O(1),算法效率最高,,O(2,n,),算法效率最低,。,5.,算法的,空间复杂度,执行算法所需存储空间的大小。也是问题规模,n,的函数。,6.,算法的复杂度,包括:算法时间复杂度和算法空间复杂度。,低,高,25,例,6,冒泡排序,的,C,语言算法,/

18、对数组,a,中,n,个数按递增次序作冒泡排序,1.Void bubble1(int a,int n),2.int i,j,temp,;,3.for(i=0,;,i=n-2,;,i+)/,?次,4.for(j=0,;,jaj+1)/,?次,6.temp=aj,;,/,?次,7.aj=aj+1,;,/,?次,8.aj+1=temp,;,/,?次,9.,10.for(i=0,;,i1&change,;,i-),3.change=,FALSE,;,/change,为交换标志,4.for(j=0,;,jaj+1),6.aj,aj+1,;,/,交换元素,7.change=,TRUE,;,/,修改交换标志,8.,9.,10.,思考:在最好情况下,,f(n)=?T(n)=O(f(n)=?,在最坏情况下,,f(n)=?T(n)=O(f(n)=?,27,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服