数据结构引言.ppt
《数据结构引言.ppt》由会员分享,可在线阅读,更多相关《数据结构引言.ppt(61页珍藏版)》请在课桌文档上搜索。
1、数据结构-引言,4,成绩组成,大作业期末考试出勤、课堂表现,5,第一章 引言,什么是数据结构算法分析面向对象的数据结构,6,什么是数据结构,没有标准的定义,但有共识数据结构:通过抽象的方法研究一组有特定关系的数据的存储与处理数据结构的研究内容:数据之间的逻辑关系,以及这种关系对应的操作如何存储某种逻辑关系(存储实现)在这种存储模式下,关系的操作是如何实现的(运算实现),7,数据的逻辑结构,集合结构:元素间的次序是任意的。元素之间除了“属于同一集合”的联系外没有其他的关系。线性结构:数据元素的有序序列。除了第一个和最后一个元素外,其余元素都有一个前趋和一个后继树形结构:除了根元素外,每个节点有且
2、仅有一个前趋,后继数目不限图型结构:每个元素的前趋和后继数目都不限,8,9,数据结构的操作,创建:创建一个数据结构清除:删除数据结构插入:在数据结构指定的位置上插入一个新元素删除:将数据结构中的某个元素删去搜索:在数据结构中搜索满足特定条件的元素更新:修改数据结构中的某个元素的值访问:访问数据结构中的某个元素遍历:按照某种次序访问数据结构中的每一元素,使每个元素恰好被访问一次,每一种数据结构的特定操作,10,数据结构的存储实现,包括两个部分:数据元素的存储数据元素之间的关系的存储 物理结构由三个部分组成:存储结点,每个存储结点存放一个数据元素;数据元素之间的关系的存储,也就是逻辑结构的机内表示
3、;附加信息,便于运算实现而设置的一些“哑结点”,如链表中的头结点。,11,基本的存储方式,数据元素的类型可以是各种各样的,通常不会是简单的内置类型,因此存储结点可以是一个结构体类型的变量或对象数据结构主要讨论关系的存储。因此,数据结构主要采用泛型程序设计的思想,12,关系的存储,顺序存储:用存储的位置表示元素之间的关系。主要用数组实现。链接存储:用指针显式地指出元素之间的关系,如单链表就是表示线性关系的。哈希存储方式:是专用于集合结构的数据存放方式。在哈希存储中,各个结点均匀地分布在一块连续的存储区域中,用一个哈希函数将数据元素和存储位置关联起来。索引存储方式:所有的存储结点按照生成的次序连续
4、存放。另外设置一个索引区域表示结点之间的关系。,13,第一章 引言,什么是数据结构算法分析面向对象的数据结构,14,算法分析,数据结构是讨论一组数据的处理问题每一种存储方式下对应的每一种操作的实现都是一个算法每种操作有多种实现方式如何评价这些算法的好坏,15,算法的质量评价,正确性:算法应能正确地实现预定的功能;易读性:算法应易于阅读和理解,以便于调试、修改和扩充;健壮性:当环境发生变化(如遇到非法输入)时,算法能适当地做出反应或进行处理,不会产生不正确的运算结果;高效率:具有较高的时间和空间性能。这四个指标往往是互相冲突的,数据结构主要考虑的是时空性能。,16,算法效率分析,如何确定一个算法
5、是高效的算法就是分析该算法所需要的资源。算法的资源包括:时间:程序运行所需要的时间。要运行一年的算法是很难让人接受的空间:程序运行所需要的空间。需要几个G的内存的算法同样也令人难以接受。,17,算法分析,时间复杂度的概念 算法运算量的计算渐进表示法时间复杂度的计算算法的优化空间复杂度的概念,18,程序的运行时间,影响运行时间的因素问题规模和输入数据的分布编译器生成的目标代码的质量计算机系统的性能程序采用的算法的优劣关键是算法的优劣,19,有效算法的重要性,计算机不是万能的,并非所有的算法,计算机都能够计算出有用的结果。差的算法不一定有实际意义。如果一台计算机 1 秒能处理1000条指令,那么如
6、果处理n个数据所需执行的指令数如表中的函数所示,20,有效时间中能够处理的数据量,21,有效算法的重要性,关键:提高算法的效率而不是提高机器的速度!,22,时间复杂度,算法的时间复杂度是一种抽象的度量,即运算量与问题规模之间的关系。算法的时间复杂度也与被处理的数据分布有关算法的时间复杂度最好情况的时间复杂度最坏情况的时间复杂度平均情况的时间复杂度,23,算法分析,时间复杂度的概念 算法运算量的计算渐进表示法时间复杂度的计算算法的优化空间复杂度的概念,24,算法运算量的计算,根据问题的特点合理地选择一种或几种操作作为“标准操作”,将标准操作作为一个抽象的运算单位;确定每个算法在给定的输入下共执行
7、了多少次标准操作;并将它作为算法的计算量。,25,实例,如果有一组正整数,存放在数组array中,要求设计一个算法求数组中的最大值与d的乘积。,26,算法一int max1(int array,int size,int d)int max=0,i;for(i=0;i max)max=arrayi;return max;,算法二int max2(int array,int size,int d)int max=0,i;for(i=0;i max)max=arrayi;return max*d;,27,运算量的计算,用乘法、赋值和条件判断作为标准操作设输入的数组值为1,2,3,d=4Max1:3次
8、乘法,14次赋值,11次比较,共28次标准操作 max2执行了1次乘法,7次赋值,7次比较,共15次标准操作。,28,找出运算量的函数,如找出max1的最坏情况下的运行时间函数 第一个for循环:循环控制行中,表达式1执行一次,表达式2执行n+1次,表达式3执行了n次。每个循环周期执行一次乘法、一次赋值。总的运算量为1+(n+1)+n+n*2=4n+2。第二个循环:循环控制行中,表达式1执行了一次,表达式2执行了n+1次,表达式3执行了n次,每个循环周期执行一次比较,一次赋值。总运算量为1+(n+1)+n+n*2=4n+2。max1在最坏情况下的总运算量是8n+4。,29,算法分析,时间复杂度
9、的概念 算法运算量的计算渐进表示法时间复杂度的计算算法的优化时间复杂度的概念,30,渐进表示法,算法的运行时间函数可能是一个很复杂的函数,如何比较这些函数并从中选取出一个好的算法呢?时间性能主要考虑的是问题规模很大的时候运行时间随问题规模的变化规律 渐进表示法:不考虑具体的运行时间函数,只考虑运行时间函数的数量级,31,渐进表示法,定义:(大O)如果存在正的常数c和N0,满足当N=N0时有T(N)=N0时有T(N)cF(N),则T(N)是(F(N)。定义:(大)当且仅当T(N)是O(F(N),并且T(N)又是(F(N),则T(N)是(F(N)。定义:(小O)当且仅当T(N)是O(F(N),并且
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 引言
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-229780.html