- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
例T(n)=3N2+4NlogN+7时,求它的一个渐近表达式t(n)的一个答案是3N2记:算法的计算时间为f(n)数量级限界函数为g(n)其中,n是输入或输出规模的某种测度。f(n)表示算法的“实际”执行时间—与机器及语言有关。g(n)是形式简单的函数,如nm,logn,2n,n!等。是事前分析中通过对计算时间或频率计数统计分析所得的、与机器及语言无关的函数。以下给出算法执行时间:上界(О)、下界(Ω)、“平均”()的定义。2.2.1渐近上界记号(O)*成都学院计算机系-*-如果存在两个正常数c和n0,对于所有的n≥n0,有|f(n)|≤c|g(n)|则记作f(n)=Ο(g(n))称为大O记号(bigOhnotation)。使用大O记号及后面定义的几种渐近表示法表示的算法时间复杂度,称为算法的渐近时间复杂度(asymptoticcomplexity)12345例101f(n)=2n+3是否等于O(n)02当n≥3时,2n+3≤3n03可选c=3,n0=3。04对于n≥n0,f(n)=2n+3≤3n。05所以,f(n)=O(n),即2n+3?O(n)。061例22f(n)=10n2+4n+2的O表示形式.3对于n≥2时,10n2+4n+2≤10n2+5n4并且当n≥5时,5n≤n25因此,可选c=11,n0=5;对于n≥n0,f(n)=10n2+4n+2≤11n26所以f(n)=O(n2)。例3证明:f(n)=n!=O(nn)证:n!=n(n?1)(n?2)…1对于n≥1时,n(n?1)(n?2)…1≤nn因此,可选c=1,n0=1对于n≥n0,f(n)=n!≤nn所以,f(n)=O(nn)。例410n2+9?O(n)使用反证法假定存在c和n0,使得对于n≥n0,10n2+9≤cn始终成立,那么有10n+9/n≤c,即n≤c/10?9/(10n)总成立。但此不等式不可能总成立,取n=c/10+1时,该不等式便不再成立。定理2-1如果f(n)=amnm+am?1nm?1+…+a1n+a0是m次多项式,且am>0,则f(n)=O(nm)。证明:取n0=1,当n≥n0时,有f(n)=amnm+am?1nm?1+…+a1n+a0?|am|nm+|am?1|nm?1+…+|a1|n+|a0|?(|am|+|am?1|/n+…+|a1|/nm?1+|a0|/nm)nm?(|am|+|am?1|+…+|a1|+|a0|)nm取c=|am|+|am?1|+…+|a1|+|a0|,定理得证。只要适当选择关键操作,算法的渐近时间复杂度可以由关键操作的执行次数之和来计算。一般地,关键操作的执行次数与问题的规模有关,是n的函数。【程序2-3】矩阵乘法for(i=0;in;i++)//n+1for(j=0;jn;j++){//n(n+1)c[i][j]=0;//n2for(k=0;kn;k++)//n2(n+1)c[i][j]+=a[i][k]*b[k][j];//n3}2.2.2渐近下界记号(?)*成都学院计算机系-*-如果存在两个正常数c和n0,对于所有的n≥n0,有|f(n)|≥c|g(n)|则记作f(n)=?(g(n))称为?记号(omeganotation)。12543例5f(n)=2n+3=?(n)对所有n,2n+3≥2n可选c=2,n0=0。对于n≥n0,f(n)=2n+3≥2n所以,f(n)=?(n),即2n+3??(n)。12345例6f(n)=10n2+4n+2=?(n2)对所有n,10n2+4n+2≥10n2可选c=10,n0=0对于n≥n0,f(n)=10n2+4n+2≥10n2所以,f(n)=?(n2)。3214561定理2-22如果f(n)=amnm+am?1nm?1+…+a1n
文档评论(0)