【教学课件】第6章算法与数据结构基础.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《【教学课件】第6章算法与数据结构基础.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第6章算法与数据结构基础.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作第六章 算法与数据结构基础 计算机程序主要对数据进行加工和处理。程序中需要说明数据结构:数据的组织形式和存储方式算法:操作数据的步骤和方法 数据结构算法1第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作6.1 数据结构基本概念 随着计算机技术的发展,其应用领域越来越广。计算机应用已不在局限于数值计算,更多地用于数据处理和信息管理等非数值计算。例如:学生、图书、财务和人事等信息管理系统。学号姓名性别出生
2、日期班级专业20040001刘强男1984/02/1314001机械制造20040002 王晓红女1986/05/0614001机械制造20040003李明男1984/10/2514001机械制造20040041张宇男1984/06/1414002机械电子工程 每个学生对应一个数据,由学号、姓名、性别和出生日期等多个数据项构成,通常对学生信息进行插入、删除或查找等操作。2第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作 数据结构的定义 数据结构是指具有相同特征、相互之间有关联的数据集合。现实世界中每个对象都可以映像成数据
3、元素。数据元素可以由一个数、一个字符或一个名字等单个数据项组成,也可以由多个数据项组成。数据元素、结点数据结构中数据元素都具有某种共同特征数据结构中数据元素之间存在着某种关系 3第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作9向量2 2,4343,6868,4545,3232是数据结构每个数据元素由一个数据项组成数据元素之间有位置上的前后关系 每个数据元素由一个数据项组成数据元素之间有位置上的前后关系 9季度名称组成的集合是数据结构:春,夏,秋,冬9家庭成员祖父、父亲、儿子是数据结构每个数据元素由一个数据项组成数据元素
4、之间有层次上的高低关系 4第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作 数据结构数据结构是指带有是指带有结构特性结构特性的的数据元素集合数据元素集合。主要研究:数据集合中数据元素之间所固有的关系,即数据逻辑结构;数据处理时数据在计算机中的存储关系,即数据存储结构(物理结构);对数据所进行的操作。5第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作数据逻辑结构 数据结构中数据元素之间所固有的关系描述成前前后后件件(前驱与后继)关系。数据之间前后件关
5、系是它们之间的逻辑关系,与它们在计算机中的存储位置无关,因此将这种关系称为逻辑结构。6第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作一个数据结构可以表示为 S=(D,R)季节数据结构可以定义成 S=(D,R)其中:D=春,秋,冬,夏 R=(春,夏),(夏,秋),(秋,冬)S表示数据结构D数据元素集合向量数据结构可以定义成 S=(D,R)其中:D=2,43,68,45,32 R=(2,43),(43,68),(68,45),(45,32)数据元素之间的前后件关系的集合7第六章第六章 算法与数据结构基础算法与数据结构基础吉
6、林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作线性结构:一般来说,数据之间有集合,线性,树型和图形 4 种基本逻辑结构。数据元素之间是一对一的关系除第一个结点无前件外,其他结点都 只有一个前件除最后一个结点无后件外,其他结点都只有一个后件例如:春夏冬秋8第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作O数据之间存在一对多的关系O一个结点最多有一个前件,可以有多个后件O前件与后件之间有层次关系 一般来说,数据之间有集合,线性,树型和图形 4 种基本逻辑结构。树型结构:9第六章第六章 算法与数据结构基
7、础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作9数据元素之间存在多对多的关系9一个结点可以有多个前件和多个后件 一般来说,数据之间有集合,线性,树型和图形 4 种基本逻辑结构。图形结构:10第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作 一般来说,数据之间有集合,线性,树型和图形 4 种基本逻辑结构。集合:是一种松散结构,数据元素之间的关系只是同属于一个集合,可以用其他结构来表示。集合11第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作
8、吉林大学公共计算机教学与研究中心制作数据物理结构 数据在计算机存储器中的存储方式称为数据物理结构(数据存储结构)。在数据存储结构中,不仅要存放各个数据元素信息,还要存放数据元素之间前后件关系信息。数据元素在计算机中通常有四种存储方式:顺序、链式、索引和散列。12第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作顺序存储结构 顺序存储结构是在内存中开辟一块连续内存单元用于存放数据,逻辑上相邻的结点在物理位置上也相邻。即:结点之间的逻辑关系由存储单元的相邻关系来体现。13第六章第六章 算法与数据结构基础算法与数据结构基础吉林大
9、学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作有如下顺序关系 a,b,c,d 例如:a a地址2000H2000H2001H2001Hc c2002H2002H2003H2003Hd d数据顺序存储结构 如果在b和c之间增加新数据x构成 a,b,x,c,d的顺序关系,应该如何存储?b b14第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作 链式存储结构链式存储结构中,结点由两部分组成:用于存放数据元素(数据域)用于存放前件或后件的存储地址(指针域)即:通过指针反映数据元素之间的逻辑关系15第六章第六章
10、 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作 链式存储结构有如下顺序关系 a,b,c 例如:a a2000b bc c30011003300130011003100316第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作顺序存储结构与链式存储结构比较顺序存储结构:优点:每个结点占用存储空间最少 缺点:如果数据元素很多,则可能找不到一块足够大的连续存储单元 不能很好利用存储单元,容易产生碎片链式存储结构:优点:充分利用所有存储单元缺点:每个结点占用较多存储单元
11、 17第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作链式存储的插入 J L U S在J,L之间插入接点S链式存储的删除 J L U 删除接点L显然,链式存储的插入和删除操作比较简单、方便18第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作6.2 算法基本概念 程序包含两方面的内容:对数据的描述 对操作的描述 算法就是操作步骤,是解决“做什么”和“怎么做”的问题。算法是程序的灵魂,广义来说,为解决一个问题而采取的方法和步骤就称为算法。19第六章第六
12、章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作计算机算法分为:数值算法 非数值算法 各种数学问题的解法 常用于事物管理领域,如排序、查询 算法是定义在逻辑结构上的操作,独立于计算机,但算法的实现依赖于数据的存储结构。20第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作算法的特征Z可行性Z确定性Z有穷性Z输入Z输出 采取的方法和步骤可行,结构另人满意。算法中的每一个步骤都必须确定,不能产生歧义。执行算法时从外界取得必要的信息。一个算法可以有零或多个输入。算法
13、得到的结果就是输出,没有输出的算法是没有意义的,一个算法应该有一个或多个输出。算法必须由有限步组成,并能在有效时间内完成。21第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作算法描述方法 计算写出其算法。分析:分析:1 1、展开上面算式、展开上面算式 S=1+2+3+99+100S=1+2+3+99+1002 2、按传统方法求解、按传统方法求解 S 1 S S+2 S S+3 S S+99 S S+10022第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究
14、中心制作 计算写出其算法。main()main()int s=0;int s=0;s=1;s=1;s=s+2;s=s+2;s=s+3;s=s+3;s=s+99;s=s+99;s=s+100;s=s+100;printf(“s=%d/n”,s);printf(“s=%d/n”,s);利利用用程程序序设设计计中中的的顺顺序序结结构构很不理想算法23第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作 用于描述算法的工具很多,通常有流程图、N-S图、自然语言和伪代码等工具。自然语言:带序号的人类语言描述方法。1.1.将变量将变量s
15、 s清清0 0;2.2.将变量将变量n n置置1 1;3.3.把把s+ns+n的值赋给的值赋给s s;4.4.把把n+1n+1的值赋给的值赋给n n;5.5.判断判断 n n 100 100?是否成立?是否成立,若成立,转,若成立,转3 3;否则转否则转6 66.6.6.6.输出输出s s的值的值;S=1+2+3+99+100特点特点:易懂却不直观易懂却不直观,对复杂算法描述很对复杂算法描述很困难困难,易产生歧义。易产生歧义。若成立若成立,24第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作伪代码法:是一种假的代码不能被
16、计算机所理解,但可以用你熟悉的计算机语言的语句加上自然语言构成。0 S 1 n while n 100 S+n S n+1 n print S 这样就接近于某种语这样就接近于某种语言编写的程序言编写的程序,便于转便于转换成编程语言。换成编程语言。25第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作 用于描述算法的工具很多,通常有流程图、N-S图、自然语言和伪代码等工具。流程图法:用一些图框、线条以及文字说明 来形象地、直观地描述算法。输入/输出处理判断起止连接点流程线符号说明:26第六章第六章 算法与数据结构基础算法与数
17、据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作开始0 S1 nSn Sn1 n输出S结束T F n 100S=1+2+3+99+100S=1+2+3+99+100优点:直观形象缺点:算法复杂时,篇幅 较多,费时且不方便修改。27第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作N-S图:完全去掉了带箭头的流程线、算法的所有处理步骤都写在一个大矩形框内,框内还可以包含一些从属于它的小矩形框,适于结构化程序设计。顺序顺序AB判断判断条件FTBA“当型当型”循循环环当条件成立当条件成立A“直到
18、型直到型”循循环环直到条件成立直到条件成立A0 S1 nn 100Sn Sn1 n输出输出S S的值的值28第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作算法评价 在计算机程序设计中,某一任务的算法设计得优与劣,将直接影响程序的运行效率、稳定性和可维护性。通常从以下4个方面评价一个算法。正确性可读性健壮性执行效率算法本身没有语法错误,执行时输入正确数据能够得到正确结果.算法要容易理解和阅读,容易实现,同时也要便于程序维护和完善。指算法执行的时间性能和空间性能 。算法能够对输入的各种数据给予适当的提示和处理。多多个个算算
19、法法解解决决同同一一个个问问题题时时,执执行行时时间间短短的的算算法法时时间间效效率率高高;占占用用存存储储空空间间少少的的算算法法空间效率高。空间效率高。29第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作算法复杂度 算法复杂度是对算法效率的度量,是评价算法优劣的重要依据。一个算法复杂度高低体现在运行该算法所需要资源的多少。时间资源空间(即存储器)资源 因而,算法复杂度包含时间复杂度和空间复杂度。时间复杂度指执行算法所需时间:执行时间=语句执行时间语句执行次数 空间复杂度指在算法执行过程中,所占用附加空间数量30第六章
20、第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作6.3 典型数据结构数据逻辑结构分为:线性结构 非线性结构有且只有一个开始结点和一个终端结点,并且每个结点最多只有一个前件和一个后件,线性结构也称为线性表。栈、队列、数组和串等是特殊线性表非线性结构包括树和图31第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作6.3.1 线性表 线性表是一组特征相同数据的有限序列,表示为 L=(a1 1,a2 2,a3 3 an n)。非空线性表的特征:除a1 1无前件外,
21、其它任意数据元素ai i有且只有一个前件ai-1i-1。除了an n无后件外,其它任意数据元素ai i有且只有一个后件ai+1i+1。线性表中数据元素个数n(n0)称为线性表长度。当n=0时,称为空表。在非空线性表中,每个数据元素都有一个确定位置,其位置取决于它的序号。a a1 1是第一个元素,是第一个元素,a a2 2 是第二个元素,是第二个元素,a an n是最后一个元素。是最后一个元素。32第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作向量2,43,68,45,32是线性表。季度名称 春,夏,秋,冬是线性表。学生
22、基本信息:(20040001,(20040001,刘强刘强,男男,1984/02/13,14001,1984/02/13,14001,机械制造机械制造),),(20040002,(20040002,王晓红王晓红,女女,1986/05/06,14001,1986/05/06,14001,机械制造机械制造),),(20040003,(20040003,李明李明,男男,1984/10/25,14001,1984/10/25,14001,机械制造机械制造)是线性表。33第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作线性表顺序存
23、储结构顺序存储结构具有以下两个基本特点特点:线性表中所有元素所占的存储空间是连续的。线性表中各元素在存储空间中按逻辑顺序依次存放,即线性表的逻辑结构与存储结构相一致一致。线性表通常采用顺序存储结构或链式存储结构。顺序表顺序表链表链表由此可以看出由此可以看出:在线性表的顺序存储结构中,其前后两个元素在存储空间中是紧邻的,前件元素一定存放在后件元素的前面。34第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作例如:线性结构 a1 1,a2 2,a3 3,其中每个数据元素占2个存储空间,假设存储a1 1的首地址为2000。200
24、02000a a1 1占占2 2个字节个字节a a2 2a a3 32004200420022002占占2 2个字节个字节占占2 2个字节个字节存储地址:存储地址:结论:假假设设一一个个数数据据元元素素占占用用d d个个字字节节,线线性性表表的的首首地地址址Addr(aAddr(a1 1)为为K K,则则存存储储任任意意一一个个数数据据元元素素a ai i的首地址为的首地址为:Addr(aAddr(ai i)=Addr(a)=Addr(a1 1)+(i-1)d=K+(i-1)d)+(i-1)d=K+(i-1)d 其中其中 1 i n 1 i n 优点:可以方便地随机读取表中任意元素缺点:插入和
25、删除运算需要移动大量元素,浪费大 量时间,时间效率较低。35第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作线性表的链式存储 用一组存储单元(可以连续,也可以不连续)存储线性表中数据元素。为了反映数据元素之间的逻辑关系,每个数据元素由两部分组成:1用于存放数据元素(数据域)2用于存放前件或后件的存储地 址(指针域)数据域数据域指针域指针域结点之间逻辑关系由指针域来确定36第六章第六章 算法与数据结构基础算法与数据结构基础吉林大学公共计算机教学与研究中心制作吉林大学公共计算机教学与研究中心制作单链表 定义:每个结点只有一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 算法 数据结构 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内