算法效率的度量课件

上传人:仙*** 文档编号:200788207 上传时间:2023-04-17 格式:PPT 页数:25 大小:1.32MB
收藏 版权申诉 举报 下载
算法效率的度量课件_第1页
第1页 / 共25页
算法效率的度量课件_第2页
第2页 / 共25页
算法效率的度量课件_第3页
第3页 / 共25页
资源描述:

《算法效率的度量课件》由会员分享,可在线阅读,更多相关《算法效率的度量课件(25页珍藏版)》请在装配图网上搜索。

1、时间复杂度计算时间复杂度计算时间复杂度计算时间复杂度计算时间复杂度分析时间复杂度分析空间复杂度本章的本章的重点重点是了解数据结构的是了解数据结构的逻辑结构逻辑结构、存储结构存储结构、数据的运算数据的运算三方面的概念及相三方面的概念及相互关系,互关系,难点难点是是算法复杂度算法复杂度的分析方法。的分析方法。课堂小结课堂小结需要达到需要达到层次的内容有:层次的内容有:算法算法、算法的、算法的时间复杂度时间复杂度和和空间复杂度空间复杂度、最坏的和平均时间复杂度等概念,最坏的和平均时间复杂度等概念,算法描算法描述述和算法分析的方法、对一般的算法要能和算法分析的方法、对一般的算法要能分析出时间复杂度。分

2、析出时间复杂度。需要达到需要达到层次的基本概念和术语有:层次的基本概念和术语有:数据数据、数据元素数据元素、数据项数据项、数据结构数据结构。特别。特别是数据结构的逻辑结构、存储结构及数据运是数据结构的逻辑结构、存储结构及数据运算的含义及其相互关系。数据结构的两大类算的含义及其相互关系。数据结构的两大类逻辑结构和四种常用的存储表示方法。逻辑结构和四种常用的存储表示方法。数数 据据 结结 构构 习习 题题 一一 1.1 简述下列概念:数据、数据元素、数据简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。线性结构、非线性结

3、构。数据:数据:指能够被计算机识别、存储和加工处理的信指能够被计算机识别、存储和加工处理的信息载体。息载体。数据元素:数据元素:就是数据的基本单位,在某些情况下,数就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。据元素也称为元素、结点、顶点、记录。数据元素有时可以由若干数据项组成。数据元素有时可以由若干数据项组成。数据类型:数据类型:是一个值的集合以及在这些值上定义的一是一个值的集合以及在这些值上定义的一组操作的总称。组操作的总称。数据结构:数据结构:指的是数据之间的相互关系,即数据的组指的是数据之间的相互关系,即数据的组织形式。一般包括三个方面的内容织形式。一般包括三

4、个方面的内容:数据的数据的逻辑结构、存储结构和数据的运算。逻辑结构、存储结构和数据的运算。逻辑结构:逻辑结构:指各数据元素之间的逻辑关系。指各数据元素之间的逻辑关系。存储结构:存储结构:就是数据的逻辑结构用计算机语言的实现。就是数据的逻辑结构用计算机语言的实现。线性结构:线性结构:数据逻辑结构中的一类,它的特征是若结构数据逻辑结构中的一类,它的特征是若结构为非空集,则该结构有且只有一个开始结点为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都最多只有和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表就是一个直接前趋和一个直接后继。线性表就是一个典型的线性

5、结构。一个典型的线性结构。非线性结构:非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。一个结点可能有多个直接前趋和直接后继。1.2 试举一个数据结构的例子、叙述其逻辑试举一个数据结构的例子、叙述其逻辑结构、存储结构、运算三个方面的内容。结构、存储结构、运算三个方面的内容。例如有一张学生成绩表,记录了一个班例如有一张学生成绩表,记录了一个班的学生各门课的成绩。按学生的姓名为一行的学生各门课的成绩。按学生的姓名为一行记成的表。这个表就是一个数据结构。每个记成的表。这个表就是一个数据结构。每个记录记录(有姓名,学号,成

6、绩等字段有姓名,学号,成绩等字段)就是一个就是一个结点,对于整个表来说,只有一个开始结点结点,对于整个表来说,只有一个开始结点(它的前面无记录它的前面无记录)和一个终端结点和一个终端结点(它的后它的后面无记录面无记录),其他的结点则各有一个也只有,其他的结点则各有一个也只有一个直接前趋和直接后继一个直接前趋和直接后继(它的前面和后面它的前面和后面均有且只有一个记录均有且只有一个记录)。这几个关系就确定。这几个关系就确定了这个表的了这个表的逻辑结构逻辑结构。那么我们怎样把这个表中的数据存储到计算那么我们怎样把这个表中的数据存储到计算机里呢机里呢?用高级语言如何表示各结点之间的用高级语言如何表示各

7、结点之间的关系呢关系呢?是用一片连续的内存单元来存放这是用一片连续的内存单元来存放这些记录些记录(如用数组表示如用数组表示)还是随机存放各结点还是随机存放各结点数据再用指针进行链接呢数据再用指针进行链接呢?这就是这就是存储结构存储结构的问题。的问题。最后,我们有了这个表最后,我们有了这个表(数据结构数据结构),肯定要,肯定要用它,那么就是要对这张表中的记录进行查用它,那么就是要对这张表中的记录进行查询,修改,删除等操作,对这个表可以进行询,修改,删除等操作,对这个表可以进行哪些操作以及如何实现这些操作就是哪些操作以及如何实现这些操作就是数据的数据的运算运算问题了。问题了。1.3 常用的存储表示

8、方法有哪几种常用的存储表示方法有哪几种?常用的存储表示方法有四种常用的存储表示方法有四种:顺序存储方法:顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储表单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。示称为顺序存储结构。链接存储方法:链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链

9、式存段表示的。由此得到的存储表示称为链式存储结构。储结构。索引存储方法:索引存储方法:除建立存储结点信息外,还建立附加的索引除建立存储结点信息外,还建立附加的索引表来标识结点的地址。表来标识结点的地址。散列存储方法:散列存储方法:就是根据结点的关键字直接计算出该结点的就是根据结点的关键字直接计算出该结点的存储地址。存储地址。1.4 设三个函数设三个函数f,g,h分别为分别为f(n)=100n3+n2+1000,g(n)=25n3+5000n2,h(n)=n1.5+5000nlgn请判断下列关系是否成立:请判断下列关系是否成立:(1)f(n)=O(g(n)(2)g(n)=O(f(n)(3)h(n

10、)=O(n1.5)(4)h(n)=O(nlgn)渐近时间复杂度的表示法的严格定义渐近时间复杂度的表示法的严格定义:“若若T(n)和和f(n)是定义在正整数集合上的两个是定义在正整数集合上的两个函数,则函数,则T(n)=O(f(n)表示存在正的常数表示存在正的常数C和和n0,使得当使得当nn0时都满足时都满足0T(n)Cf(n)。”(1)成立。成立。(2)成立。)成立。(3)成立。)成立。(4)不成立。)不成立。这两个函数当整型自变量这两个函数当整型自变量n趋向于无穷大时,趋向于无穷大时,两者的比值是一个不等于两者的比值是一个不等于0的常数的常数。1.5 设有两个算法在同一机器上运行,其设有两个

11、算法在同一机器上运行,其执行时间分别为执行时间分别为100n2和和2n,要使前者快于要使前者快于后者,后者,n至少要多大至少要多大?最简单最笨的办法就是拿自然数去最简单最笨的办法就是拿自然数去代呗。假定代呗。假定n取为取为10,则前者的值是,则前者的值是10000,后者的值是,后者的值是1024,小于前者,小于前者,那我们就加个那我们就加个5,用,用15代入得前者为代入得前者为22500,后者为,后者为32768,已经比前者大,已经比前者大但相差不多,那我们再减个但相差不多,那我们再减个1,用,用14代代入得,前者为入得,前者为19600,后者为后者为16384,又,又比前者小了,所以结果得出

12、来就是比前者小了,所以结果得出来就是n至至少要是少要是15。1.6 设设n为正整数,利用大为正整数,利用大O记号,将下列记号,将下列程序段的执行时间表示为程序段的执行时间表示为n的函数。的函数。1.7 算法的时间复杂度仅与问题的规模相关吗算法的时间复杂度仅与问题的规模相关吗?No,事实上,算法的时间复杂度不仅与问事实上,算法的时间复杂度不仅与问题的规模相关,还与输入实例中的元素取值题的规模相关,还与输入实例中的元素取值等相关,但在最坏的情况下,其时间复杂度等相关,但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。我们在讨就是只与求解问题的规模相关的。我们在讨论时间复杂度时,一般就是以

13、最坏情况下的论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。时间复杂度为准的。1.8 按增长率由小至大的顺序排列下列各函数:按增长率由小至大的顺序排列下列各函数:2100,(2/3)n,(3/2)n,nn,n!,2n,lgn,nlgn,n(3/2),n(1/2)分析如下:分析如下:2100 是常数阶;是常数阶;(2/3)n和和(3/2)n是指数阶是指数阶,其中前者是随其中前者是随n的增大而减的增大而减小的;小的;nn是指数方阶;是指数方阶;n(1/2)是方根阶是方根阶,n!就是就是n(n-1)(n-2).就相当于就相当于n次方阶;次方阶;2n 是是指数阶,指数阶,lgn是对数阶是对数阶

14、,nlgn是对数方阶是对数方阶,n(3/2)是是3/2次方阶。根据以上分析按增长率次方阶。根据以上分析按增长率由小至大的顺序可排列如下:由小至大的顺序可排列如下:(2/3)n 2100 lgn n n(3/2)nlgn (3/2)n 2n n!nn 1.9 有时为了比较两个同数量级算法的优劣,有时为了比较两个同数量级算法的优劣,须突出主项的常数因子,而将低次项用大须突出主项的常数因子,而将低次项用大“O”记号表示。记号表示。例如,设例如,设T1(n)=1.39nlgn+100n+256=1.39nlgn+O(n),T2(n)=2.0nlgn-2n=2.0lgn+O(n),这两个式子表示,当这两个式子表示,当n足够大时足够大时T1(n)优于优于T2(n),因为前者的常数因子小于后者。请用,因为前者的常数因子小于后者。请用此方法表示下列函数,并指出当此方法表示下列函数,并指出当n足够大时,足够大时,哪一个较优,哪一个较劣哪一个较优,哪一个较劣?

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!