ImageVerifierCode 换一换
格式:PPTX , 页数:50 ,大小:1.03MB ,
文档编号:6840203      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-6840203.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

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

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(ziliao2023)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(数据结构与算法概述概要课件.pptx)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

数据结构与算法概述概要课件.pptx

1、一、数据结构讨论与研究的范畴一、数据结构讨论与研究的范畴二、算法二、算法第第1节节 概述概述1 学习和了解数据结构所研究的内容;掌握学习和了解数据结构所研究的内容;掌握数据的逻辑结构和存储结构的定义和基本数据的逻辑结构和存储结构的定义和基本分类;分类;学习和掌握与数据结构有关的名词术语学习和掌握与数据结构有关的名词术语(如数据、数据元素、数据对象、数据类(如数据、数据元素、数据对象、数据类型、抽象数据类型型、抽象数据类型ADT等等);等等);学习和了解算法的概念、特点以及算法的学习和了解算法的概念、特点以及算法的评价标准。评价标准。2Data Structures+Algorithms=Pro

2、gramsNicklaus Wirth程程 序序:数据结构数据结构:算法算法:利用计算机语言编制的一组利用计算机语言编制的一组具有确定功能的指令集合。具有确定功能的指令集合。处理问题的策略。处理问题的策略。问题或对象的数学模型问题或对象的数学模型(如如何描述数据的外部表现形式何描述数据的外部表现形式和内部存储结构和内部存储结构)。3一、数据结构一、数据结构研究和讨论的范畴研究和讨论的范畴41234567895 课程编号课程编号 课课 程程 名名 学时学时 024002 程序设计基础程序设计基础 64 024010 汇编语言汇编语言 48 024016 计算机原理计算机原理 64 024020

3、数据结构数据结构 64 024021 微机技术微机技术 64 024024 操作系统操作系统 48 024026 数据库原理数据库原理 48 6学号课程编号成绩时间981640240028206.6.10981640240169006.6.15981650240028506.6.10981650240167606.6.15981650240248906.6.139816598164024016024002024024学生学生课程课程7学生学生(学号学号,姓名姓名,性别性别,籍贯籍贯)课程课程(课程号课程号,课程名课程名,学分学分)选课选课(学号学号,课程号课程号,成绩成绩)“选课选课”数据包含

4、如下信息数据包含如下信息:学号学号 课程编号课程编号 成绩成绩 时间时间 学生选课系统中学生选课系统中“学生学生”和和“课程课程”这两个这两个实体构成了网状(图状)关系(即实体构成了网状(图状)关系(即“选课选课”关关系)。系)。8/(root)binlibuseretcmathdsswlintaoxieStack.cppQueue.cppTree.cpp9数据结构的研究内容数据结构的研究内容 综合上述例子可见,描述这类非数综合上述例子可见,描述这类非数值计算问题的数学模型不再是数学方程,值计算问题的数学模型不再是数学方程,而是诸如表、树和图之类的数据结构。而是诸如表、树和图之类的数据结构。简

5、单地说,作为一门学科,数据结构简单地说,作为一门学科,数据结构主要研究主要研究非数值计算的程序设计问题非数值计算的程序设计问题当中当中计算机的计算机的操作对象操作对象(数据)(数据)以及它们之间以及它们之间的的关系关系(逻辑结构和物理结构)(逻辑结构和物理结构)和和操作操作(算法实现)(算法实现)。10 数据(数据(data)数据元素(数据元素(data element)数据项(数据项(data item)数据对象(数据对象(data object)数据结构(数据结构(data structure)数据类型(数据类型(data type)抽象数据类型(抽象数据类型(ADT)11n数据数据是信息

6、的载体,是描述客观是信息的载体,是描述客观事物的事物的数、字符数、字符以及所有能输入以及所有能输入到计算机中、被计算机程序识别到计算机中、被计算机程序识别和处理的和处理的符号的集合符号的集合。u 数值性数据数值性数据u 非数值性数据非数值性数据12数据元素数据元素是数据的是数据的基本单位基本单位。在计算。在计算机程序中常作为一个整体进行考虑和机程序中常作为一个整体进行考虑和处理。数据元素又可称为处理。数据元素又可称为元素、结点、元素、结点、记录记录。有时一个数据元素可以由若干有时一个数据元素可以由若干数据项数据项(data item)组成。)组成。数据项数据项是是具有独具有独立含义的最小标识单

7、位。立含义的最小标识单位。13具有相同性质的数据成员(数据具有相同性质的数据成员(数据元素)的集合,数据的子集元素)的集合,数据的子集。例:。例:u整数数据对象整数数据对象 N=0,1,2,u学生数据对象学生数据对象有穷集和无穷集有穷集和无穷集14定义定义:由某一由某一数据对象数据对象及该对象中所有数据及该对象中所有数据成员之间的成员之间的关系关系组成。组成。n与与“数据对象数据对象”这一概念的区别?这一概念的区别?n作为术语名词和作为学科名词的区别?作为术语名词和作为学科名词的区别?15n数据元素间的逻辑关系,即数据元素间的逻辑关系,即数据的逻数据的逻辑结构辑结构。n数据元素及其关系在计算机

8、存储内的数据元素及其关系在计算机存储内的表示,即表示,即数据的存储表示数据的存储表示(物理结构、(物理结构、物理表示)。物理表示)。n数据的运算,即数据的运算,即对数据元素施加的操对数据元素施加的操作作。作为学科,数据结构研究数据的组织作为学科,数据结构研究数据的组织形式,包括以下内容:形式,包括以下内容:16n数据的逻辑结构数据的逻辑结构从数据的逻辑关系从数据的逻辑关系上描述数据上描述数据,与数据的存储无关,与数据的存储无关,与数据元素本身的具体形式、内容与数据元素本身的具体形式、内容无关。无关。n数据的逻辑结构可以看作是从具体数据的逻辑结构可以看作是从具体问题抽象出来问题抽象出来的数据模型

9、。的数据模型。17数据的数据的逻辑结构逻辑结构可归结为以下可归结为以下四类:四类:线性线性结构:一对一关系树形树形结构:一对多关系图状图状结构:多对多关系集合集合结构:简单隶属关系18 Data_Structure=D,R 其中,其中,D 是某一数据对象,是某一数据对象,R 是该对象中是该对象中所有数据成员之间的关系的有限集合。一般表所有数据成员之间的关系的有限集合。一般表现形式如下:现形式如下:D=d1,d2,dnR=r1,r2,rm关键字关键字:数据元素中可用于标识该数据元素的数据元素中可用于标识该数据元素的某个分量(数据项)。通常用关键字区别不同某个分量(数据项)。通常用关键字区别不同的

10、数据元素。的数据元素。19D01,02,03,04,05,06,07,08,09,10R1=,R2=,R3=,20R1=,t用连线表示数据元素之间的联系用连线表示数据元素之间的联系21R2=,22R3=,23n由上述数据结构的描述可得出结论:相同由上述数据结构的描述可得出结论:相同数据元素的集合(即同一数据对象),因数据元素的集合(即同一数据对象),因其关系的不同而构成不同的数据逻辑结构。其关系的不同而构成不同的数据逻辑结构。n对一实际应用问题,合理选择数据逻辑结对一实际应用问题,合理选择数据逻辑结构才能够设计出有效的算法。构才能够设计出有效的算法。例:根据下列选课情况安排考试日程,使得在不冲

11、突的例:根据下列选课情况安排考试日程,使得在不冲突的情况下用尽可能短的时间安排所有考试。情况下用尽可能短的时间安排所有考试。学生姓名学生姓名选修课选修课1选修课选修课2选修课选修课3甲甲ABC乙乙DE丙丙DCF丁丁EFA戊戊BF24n数据的存储结构是数据在计算机内部数据的存储结构是数据在计算机内部的存储方式,依赖于计算机语言。的存储方式,依赖于计算机语言。n存储结构分类存储结构分类u 顺序存储结构顺序存储结构u 链式存储结构链式存储结构u 索引结构索引结构u 散列结构散列结构25顺序存储(矢量存储)结构顺序存储(矢量存储)结构Contiguous implementation(vector i

12、mplementation)所有元素存放在一片连续的存储单元中,逻辑所有元素存放在一片连续的存储单元中,逻辑上相邻的元素存放到计算机内存中其存储地址仍然上相邻的元素存放到计算机内存中其存储地址仍然相邻。相邻。链式存储结构链式存储结构Linked implementation 所有元素可以存放在不连续的存储单元中,元所有元素可以存放在不连续的存储单元中,元素之间的关系通过地址确定,逻辑上相邻的元素存素之间的关系通过地址确定,逻辑上相邻的元素存放到计算机内存后其存储地址不一定是相邻的。放到计算机内存后其存储地址不一定是相邻的。2627n 数据类型数据类型定义:定义:一组性质相同的值的集合一组性质相

13、同的值的集合,以及定义以及定义于这个值集合上的一组操作的总称。于这个值集合上的一组操作的总称。n C C语言中的数据类型语言中的数据类型 char int float double void char int float double void 字符型字符型 整型整型 浮点型浮点型 双精度型双精度型 无值无值 n基本数据类型(原子类型):可以看作是计基本数据类型(原子类型):可以看作是计算机中程序设计语言已实现的数据结构。算机中程序设计语言已实现的数据结构。n构造型数据类型:由相同或不同成分的类型构造型数据类型:由相同或不同成分的类型构成,如数组、结构体、类等。构成,如数组、结构体、类等。28

14、u由用户定义,用以表示实际应用由用户定义,用以表示实际应用问题的问题的数据模型。数据模型。u由由基本的数据类型基本的数据类型组成组成,并包括并包括一组相关的服务一组相关的服务(或称操作)。(或称操作)。29抽象数据类型的描述方法抽象数据类型的描述方法n抽象数据类型从形式上可用抽象数据类型从形式上可用(D,R,O)三元组表示。其中:三元组表示。其中:D是数据对象,是数据对象,R是是D上上的关系集,的关系集,O是对是对D的基本操作集的基本操作集 。一般采用如下格式描述一般采用如下格式描述ADT 抽象数据类型名抽象数据类型名 数据对象:数据对象:数据对象的定义数据对象的定义 数据关系:数据关系:数据

15、关系的定义数据关系的定义 基本操作:基本操作:基本操作的定义基本操作的定义 ADT 抽象数据类型名抽象数据类型名30ADT基本操作的定义格式基本操作的定义格式基本操作名(基本操作名(参数表参数表)初始条件初始条件:初始条件描述:初始条件描述 操作结果操作结果:操作结果描述:操作结果描述 u参数:参数:赋值参数赋值参数只为操作提供输入值只为操作提供输入值;引用参数引用参数以以&打头,除可提供输入值外,还将返回操作结果。打头,除可提供输入值外,还将返回操作结果。u初始条件:初始条件:描述操作执行之前数据结构和参数应描述操作执行之前数据结构和参数应满足的条件,若不满足,则操作失败,并返回相应满足的条

16、件,若不满足,则操作失败,并返回相应出错信息出错信息。若初始条件为空若初始条件为空,则省略之。则省略之。u操作结果操作结果:说明操作正常完成之后,数据结构的说明操作正常完成之后,数据结构的变化状况和应返回的结果。变化状况和应返回的结果。31例如,抽象数据类型例如,抽象数据类型“复数复数”的定的定义:义:数据对象:数据对象:De1,e2RealSet 数据关系:数据关系:R1|e1是复数的实数部分,是复数的实数部分,e2 是复数的虚数部分是复数的虚数部分 ADT Complex 32基本操作:基本操作:AssignComplex(&Z,v1,v2)操作结果:操作结果:构造一个复数构造一个复数 Z

17、 Z,其实部和虚,其实部和虚部分别被赋以参数部分别被赋以参数v1v1和和v2v2的值。的值。DestroyComplex(&Z)操作结果:操作结果:复数复数Z Z被销毁。被销毁。GetReal(Z,&realPart)初始条件:初始条件:复数已存在。复数已存在。操作结果:操作结果:用用realPart返回复数返回复数Z Z的实部值。的实部值。33 GetImag(Z,&ImagPart)初始条件:初始条件:复数已存在。复数已存在。操作结果:操作结果:用用ImagPart返回复数返回复数Z Z的虚部的虚部值。值。Add(z1,z2,&sum)初始条件:初始条件:z1,z2是复数。是复数。操作结果

18、:操作结果:用用sum返回两个复数返回两个复数z1,z2的和的和值值。ADT Complex34抽象数据类型的实现抽象数据类型的实现 抽象数据类型描述的是抽象的数据模型抽象数据类型描述的是抽象的数据模型及其操作,需要通过固有数据类型及其操作,需要通过固有数据类型(高级编程高级编程语言中已实现的数据类型语言中已实现的数据类型)来实现。来实现。引入抽象数据类型的意义引入抽象数据类型的意义 通常研究一个数据结构的实现问题可以从通常研究一个数据结构的实现问题可以从研究其抽象数据类型着手,例如通过对抽象研究其抽象数据类型着手,例如通过对抽象数据类型的加工来用数据类型的加工来用C+类实现该数据结构:类实现

19、该数据结构:类的数据成员对应于类的数据成员对应于ADT所描述的数据结构,所描述的数据结构,类的方法对应于类的方法对应于ADT所描述的操作。所描述的操作。35二、算法二、算法36关于算法关于算法 算法是为了解决某类问题而设算法是为了解决某类问题而设计的一个有限长的操作序列。计的一个有限长的操作序列。算法特性算法特性有穷性、确定性、可行性、有穷性、确定性、可行性、有输入、有输出有输入、有输出37有穷性有穷性:对于任意一组合法输入值,在执行对于任意一组合法输入值,在执行有穷步骤有穷步骤之后一定能结束,即:算法中的每之后一定能结束,即:算法中的每个步骤都能在个步骤都能在有限时间有限时间内完成。内完成。

20、确定性:确定性:对于对于每种情况每种情况下所应执行的操作,下所应执行的操作,在算法中都有在算法中都有确切确切的规定,使算法的执行者的规定,使算法的执行者或阅读者都能明确其含义及如何执行;并且或阅读者都能明确其含义及如何执行;并且在任何条件下,算法都只有一条执行路径。在任何条件下,算法都只有一条执行路径。可行性:可行性:算法中的所有操作都必须算法中的所有操作都必须足够基本足够基本,都可以通过已经实现的基本操作运算都可以通过已经实现的基本操作运算有限次有限次实现之。实现之。38有输入:有输入:作为算法加工对象的量值,通常作为算法加工对象的量值,通常体现为算法中的一组体现为算法中的一组变量变量。有些

21、。有些输入量输入量需需要在算法执行过程中输入,而有的算法表要在算法执行过程中输入,而有的算法表面上可以没有输入,实际上输入已被面上可以没有输入,实际上输入已被嵌入嵌入算法之中。算法之中。有输出:有输出:它是一组与它是一组与“输入输入”有确定关系有确定关系的量值,是算法进行信息加工后得到的的量值,是算法进行信息加工后得到的结结果果,这种确定关系即为算法的,这种确定关系即为算法的功能。功能。39用自然语言描述算法用自然语言描述算法:用我们日常生活中的自然语用我们日常生活中的自然语言也可以描述算法。言也可以描述算法。算法描述方算法描述方法法用流程图描述算法:用流程图描述算法:一个算法可以用流程图的方

22、式一个算法可以用流程图的方式来描述,输入输出、判断、处理分别用不同的框图表来描述,输入输出、判断、处理分别用不同的框图表示,用箭头表示流程的流向。这是一种描述算法的较示,用箭头表示流程的流向。这是一种描述算法的较好方法,目前在一些高级语言程序设计中仍然采用。好方法,目前在一些高级语言程序设计中仍然采用。用其它方式描述算法:用其它方式描述算法:我们还可以用数学语言或约我们还可以用数学语言或约定的符号语言(如伪代码)来描述算法。定的符号语言(如伪代码)来描述算法。用用C+描述算法:描述算法:在本课程中,我们将采用在本课程中,我们将采用C+来来描述算法,所有算法的描述都用描述算法,所有算法的描述都用

23、C+中的函数形式。中的函数形式。40算法和程序的关系算法和程序的关系l 算法算法程序!程序!算法着重体现思路和方法,程序着重体算法着重体现思路和方法,程序着重体现计算机的实现。现计算机的实现。程序不一定满足有穷性(例如死循环情程序不一定满足有穷性(例如死循环情形);另外,程序中的指令必须是机器可形);另外,程序中的指令必须是机器可执行的,算法中的指令无此限制。执行的,算法中的指令无此限制。算法用计算机语言来书写时才是程序。算法用计算机语言来书写时才是程序。41算法设计原则算法设计原则正确性正确性可读性可读性健壮性健壮性高效率高效率低需求低需求算法设计原则与评价标准算法设计原则与评价标准42 一

24、个特定算法的运行时间由其一个特定算法的运行时间由其“运行工作量运行工作量”决定。其运行工作量的大小,通常只依赖于决定。其运行工作量的大小,通常只依赖于问题问题的规模的规模(通常由问题涉及的数据量决定,用整数(通常由问题涉及的数据量决定,用整数量量n表示),或者说,表示),或者说,它是问题规模的函数它是问题规模的函数。算法的运行时间算法的运行时间 假如,随着假如,随着问题规模问题规模 n 的增长,算法执行时间的增长,算法执行时间的增长率和函数的增长率和函数 f(n)的增长率相同,则可记作:的增长率相同,则可记作:T(n)=O(f(n)称称T(n)为算法的为算法的时间复杂度。时间复杂度。43n事后

25、统计法事后统计法n事前分析估算法事前分析估算法u算法策略算法策略u问题规模问题规模u程序设计语言程序设计语言u机器代码运行效率机器代码运行效率u机器执行指令的速度机器执行指令的速度44如何估算算法的时间复杂度?如何估算算法的时间复杂度?算法算法=控制结构控制结构+基本操作基本操作(基本数据类型的操作)算法的执行时间算法的执行时间=基本操作的执行次数基本操作的执行时间基本操作的执行次数基本操作的执行时间算法的执行时间算法的执行时间 与与 基本操作执行次数之和基本操作执行次数之和 成正比成正比。l 从算法中选取一种对于所研究的问题来说是从算法中选取一种对于所研究的问题来说是基本基本操作操作的操作,

26、以该基本操作的操作,以该基本操作在算法中重复执行的次在算法中重复执行的次数数作为算法运行时间的衡量准则。作为算法运行时间的衡量准则。45例例一一两两个个矩矩阵阵相相乘乘void mult(int a,int b,int&c)/以二维数组存储矩阵元素,以二维数组存储矩阵元素,c 为为 a 和和 b 的乘积的乘积 for(i=1;i=n;+i)for(j=1;j=n;+j)ci,j=0;for(k=1;k=n;+k)ci,j+=ai,k*bk,j;/for/mult基本操作基本操作:乘法操作乘法操作时间复杂度时间复杂度:O(n3)46例例二二选选择择排排序序 void select_sort(in

27、t&a,int n)/将将 a 中整数序列重新排列成自小至大有序的整数序列中整数序列重新排列成自小至大有序的整数序列 /select_sort基本操作基本操作:数据比较操作数据比较操作时间复杂度时间复杂度:O(n2)for(i=0;i n-1;+i)if(j!=i)aj aij=i;/选择第选择第 i 个最小元素个最小元素for(k=i+1;k n;+k)if(ak 1&change;-i)/冒泡排序冒泡排序基本操作基本操作:赋值操作赋值操作时间复杂度时间复杂度:O(n2)change=FALSE;/change 为元素进行交换标志为元素进行交换标志 for(j=0;j aj+1)aj aj+1;change=TRUE;/一趟冒泡排序一趟冒泡排序4849写在最后写在最后成功的基础在于好的学习习惯成功的基础在于好的学习习惯The foundation of success lies in good habits 结束语当你尽了自己的最大努力时,失败也是伟大的,所以不要放弃,坚持就是正确的。When You Do Your Best,Failure Is Great,So DonT Give Up,Stick To The End演讲人:XXXXXX 时 间:XX年XX月XX日

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|