tuchengsm.com
当前位置:首页>>关于2^(3^n) 时间复杂度 算法的资料>>

2^(3^n) 时间复杂度 算法

以下是考研时常用的计算方法,实际上最简单的方法采用多项式最大阶的方法,如:f(n)=a1*n^m+a2*n^(m-1)+.an-1*n+an的时间复杂度为:T(f(n))=O(n^m)采用时间步法,找一个函数g(n),找一个自然数n0,使f(n)T(n)=O(n)(2)6n^2-12n+1=12)=7n^2=7*g(n)==>T(n)=O(n^2)(3)n(n+1)(n+2)/6=n0=2时)=n0=4)=2*g(n)===>T(n)=O(n^3)(4)2^(n+1)+100nT(n)=O(2^n)

时间复杂度就是n趋于无穷大时无穷大的最大阶次 所以:n + n log2n ===> O(nlog2n)6n^2 - 12n + 1 ===> O(n^2) n(n+1)(n+1)/6 ===> O(n^3)2^(n+1) + 100n ===> O(2^n)

一定是O(n)当n足够大时,n^3>n^2*log2n; n^3>14n,所以(n^3+n^2log2n+14n)/n^2=O(n^3)/O(n^2)=O(n)

1.时间复杂度O(n^2)2.时间复杂度O(n^2)3.时间复杂度O(n^2)4.时间复杂度O(n)5.时间复杂度O(n^3) 一般来说,时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数) 比如:一般总运算次数表达式类似于这样:a*2^n+b*n^3+

递归时间复杂度:T(n) = T(n-1) + T(n-2)=T(n-2) + T(n-3) + T(n-2)>2*T(n-2)=2*(T(n-3) + T(n-4))=2*(T(n-4) + T(n-5) + T(n-4))>2*2*T(n-4)>2^(n/2) T(n) = T(n-1) + T(n-2)<T(n-1) + T(n-1)=2*T(n-1)=2*(T(n-2) +T(n-3))<2*(T(n-2) + T(n-2))<2*2*T(n-2)<2^n

2^n是指数函数n^2是二次函数易知:当n=2时2^n=n^2=4当n=3时2^n4时2^n>n^2所以当n大于4的时候,2^n>n^2,即2^n所花的时间要多.

一、概念 时间复杂度是总运算次数表达式中受n的变化影响最大的那一项(不含系数) 比如:一般总运算次数表达式类似于这样:a*2^n+b*n^3+c*n^2+d*n*lg(n)+e*n+f a ! =0时,时间复杂度就是O(2^n); a=0,b<>0 =>O(n^3); a,b=0,c<>0 =>O(n^2)

就是看它运行多少次啊.这个运行次数是:1 + 2*3/2 + 3*4 / 2 + + n * (n + 1) / 2 即an = n * (n + 1) / 2的数列前n项之和 具体的求和我已经还给数学老师了但是显然n项(n^2)级别的数相加,结果为n^3级别// 刚刚请教了同学,具体数值是 n * (n + 1) * (n + 2) / 6 即这个算法的时间复杂度是O(n^3),大O符号是去掉了系数和低次幂之后的级别.比如一个程序运行的次数是 n^3 / 100 + 100 * n^2 + n + 10 那么它的时间复杂度是O(n^3) 一般来说,我们可以通过嵌套循环的层数,来初步估计时间复杂度

2^n高于n^3, 因为lim[x-->∞]2^x/x^3=lim[x-->∞]2^xln2/(3x^2)=lim[x-->∞]2^x(ln2)^2/(6x)=lim[x-->∞]2^x(ln2)^3/6=∞∴lim[n-->∞]2^n/n^3=∞

用极限计算: 1:lim (n->∞) 100 *n^3+10*n^2+1000 2:lim (n->∞) 25*n^3+5000*n^2 3:lim (n->∞) n^1.5+5000*n*log2(n) 当问题规模n趋向无限时,可以认为常数项,系数和比多项式最高次数底的项影响很少,可以忽略. 所以上面三个语句的渐近时间复杂度为: 1:o(n^3) 2:o(n^3) 3:o(n^1.5) 都比较低效………………otz

相关文档
sbsy.net | sgdd.net | qyhf.net | artgba.com | so1008.com | 网站首页 | 网站地图
All rights reserved Powered by www.tuchengsm.com
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com