- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
计算机算法设计与分析第一章概述渐近时间复杂度分析设T(N)是算法A的时间复杂度函数,N是问题规模,N≥0,且N∈Z。当N?∞时,T(N)?∞。对于T(N),如果存在T(N),使得当N?∞时有那么,我们就说T(N)是算法A当N?∞的渐近复杂度。渐近时间复杂度分析在渐近复杂度函数T(N)中,阶与T(N)中的常数因子没有关系,所以T(N)可进一步简化,省略常数因子。例1.4中的T(N)可取值N2即可。需要注意的是,函数简化并不是一种精确计算复杂度的方法,而是一种近似评估的方式。例1.4中的T(N)=N2/2+5N/2-3渐近时间复杂度分析定义1.1设f(N)和g(N)是正整数集上的函数。如果?c≥0和自然数N0,使得当N≥N0时有0≤f(N)≤cg(N),则称函数f(N)充分大时上有界,g(N)是f(N)的一个上界,记为f(N)=O(g(N)),即f(N)的阶不高于g(N)的阶,如图所示。不是直接比较f(N)和g(N)的数值大小,O表示的只是一个充分大的上界,上界的阶越低则算法时间复杂度的评估越精确,结果值越有价值N0cg(N)f(N)渐近时间复杂度分析例1.5求5n+4,n2+nlogn,2n+n2,10000的上界。n≥4时,5n+4≤6n,则5n+4=O(n)n≥1时,n2+nlogn≤2n2,则n2+nlogn=O(n2)n≥1时,2n+n2≤2*2n,则2n+n2=O(2n)对于常整数10000,算法执行时间与问题规模无关,无论问题规模多大,算法都在固定时间内完成。因此无论是10000还是其他任何常数输入,它的时间复杂度是一个常数级别的复杂度,即O(1)。渐近时间复杂度分析例1.6给定多项式函数:试证明T(n)=O(nm)。证明:设n0=1,对于任意的n,若n≥n0=1,则:存在c≥0和自然数n0=1,使得当n≥n0时有T(n)≤cnm,故T(n)=O(nm)成立。渐近时间复杂度分析根据定义1.1,我们有如下O(n)的性质:(1)O(f)+O(g)=O(max(f,g));算法最复杂的部分运行时间就是算法的时间复杂度。(2)O(f)+O(g)=O(f+g);算法中并行语句的时间复杂度等于各个语句运行时间之和。(3)O(f)×O(g)=O(f×g);循环的时间复杂度等于循环体运行时间与循环次数的乘积。(4)O(cf(n))=O(f(n)),c∈Z+;算法的时间复杂度是运行时间函数的数量级。(5)如果g(n)=O(f(n)),则O(f)+O(g)=O(f);算法的时间复杂度是运行时间函数的最高阶。(6)f=O(f)。渐近时间复杂度分析定义1.2设f(N)和g(N)是正整数集上的函数。如果?c≥0和自然数N0,使得当N≥N0时有f(N)≥cg(N),则称函数f(N)当N充分大时下有界,且g(N)是f(N)的一个下界,记为f(N)=Ω(g(N)),即f(N)的阶不低于g(N)的阶,如图所示。N0cg(N)f(N)渐近时间复杂度分析例1.8求5n+1,n2+nlogn的下界。当n≥1时,5n+1≥5n,则5n+1=Ω(n)当n≥1时,n2+nlogn≥n2,则n2+nlogn=Ω(n2);n2+nlogn≥nlogn,则n2+nlogn=Ω(nlogn),但nlogn≠Ω(n2)。根据定义1.2可知,n2+nlogn=Ω(n2)和n2+nlogn=Ω(nlogn)都成立,算法时间复杂度一般取最大下界。下界的阶越高,评估越精确,结果越有价值,Ω通常也表示求解问题的最好情况下的时间复杂度。渐近时间复杂度分析定义1.3设f(N)和g(N)是正整数集上的函数。如果?c1≥0、?c2≥0和自然数N0,使得当N≥N0时有0≤c1g(N)≤f(N)≤c2g(N),则称g(N)是f(N)的紧确界。记为f(N)=θ(g(N)),如图1.7所示。若f(N)=θ(g(N)),则当且仅当f(n)=O(g(N))且f(N)=Ω(g(N)),也称g(N)和f(N)同阶。N0c1g(N)f(N)c2g(N)渐近时间复杂度分析例1.9求n2+nlogn的紧确界。由例1.5和例1.8可知:n2+nlogn=O(n2),n2+nlogn=Ω(n2),因此n2+nlogn=θ(n2)。
您可能关注的文档
- 算法设计与分析 课件 第八章 线性规划.pptx
- 算法设计与分析 课件 第二章 蛮力法.pptx
- 算法设计与分析 课件 第六章 回溯法6.1.1 DFS思想.ppt
- 算法设计与分析 课件 第六章 回溯法6.2.1 解空间树.ppt
- 算法设计与分析 课件 第六章 回溯法6.2.2 回溯法框架.ppt
- 算法设计与分析 课件 第六章 回溯法6.3.1 饲料投喂问题 -算法改进.ppt
- 算法设计与分析 课件 第六章 回溯法6.3.1 饲料投喂问题.ppt
- 算法设计与分析 课件 第六章 回溯法6.3.2 n皇后问题.ppt
- 算法设计与分析 课件 第六章 回溯法6.3.3 花草种植问题.ppt
- 算法设计与分析 课件 第六章 回溯法6.3.4 路线选择问题.ppt
文档评论(0)