关于时间复杂度

时间:2022-04-13 17:11:13
(2)时间复杂度

在刚才提到的时间频度中,n称为问题的规模,当n不断变化时,时间频度T(n)也会不断变化。但有时我们想知道它变化时呈现什么规律。为此,我们引入时间复杂度概念。

一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n)),称O(f(n)) 为算法的渐进时间复杂度,简称时间复杂度。

在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时,时间复杂度有可能相同,如T(n)=n2+3n+4与T(n)=4n2+2n+1它们的频度不同,但时间复杂度相同,都为O(n2)。[/color][/color]

上面是在BAIDU上搜的 ,看不明白
哪位能用通俗点的讲讲 时间复杂度到底什么意思 怎么计算的  最好举个例子  帮帮忙 谢谢!

10 个解决方案

#1


0层循环复杂度是O(1)
一层循环复杂度是O(n)
二层循环复杂度是O(n^2)
。。。
还有指数,对数一类的的。。

我也感觉书上写的太复杂了,,看不明白,不是成纯数学了吗。。
不多见的多了,慢慢就明白了

#2


看看算法导论

#3


就是说从运行时间这个角度来考核,你的算法有多复杂。

#4


1楼上的不错  呵呵


本人开了个关于编程学习的论坛 欢迎大家捧场
www.bbs.cxrs.net

#5


處理時間的復雜程度

#6


关于时间复杂度,看严蔚敏的那本数据结构,第一章的最后就讲了的,很明白,在这也不好说。
0层循环复杂度是O(1) 
一层循环复杂度是O(n) 
二层循环复杂度是O(n^2) //这个是n的平方
。。。。。。
以此类推就对了。

#7


建议看算法导论.

求出下界/上界/平均/期望的时间&空间复杂度对分析程序效率都是有很大帮助的.

求平均时间复杂度应该很好理解吧.

比如冒泡排序是O(N^2). 其本质是对N对数排序一共要比较N*(N-1)/2次,从渐进意义上考虑就是N^2.

类似. 二分法是O(logN) 快排是O(NlogN) 图论中以E与V区分. 比如SPFA的期望是O(E)

#8


数据结构导论

#9


0层循环复杂度是O(1) 
一层循环复杂度是O(n) 
二层循环复杂度是O(n^2) 

=====================

..... 不能这样讲吧.... 复杂度不是几层循环来描述的嘛.
如果都是关于n的循以上成立, 但是一般来说都不是那么理想的情况的.

#10


就是程序执行时间的长短。为了判断程序优劣程度而引入的一个量化的概念,请查看《算法导论》第三章

#1


0层循环复杂度是O(1)
一层循环复杂度是O(n)
二层循环复杂度是O(n^2)
。。。
还有指数,对数一类的的。。

我也感觉书上写的太复杂了,,看不明白,不是成纯数学了吗。。
不多见的多了,慢慢就明白了

#2


看看算法导论

#3


就是说从运行时间这个角度来考核,你的算法有多复杂。

#4


1楼上的不错  呵呵


本人开了个关于编程学习的论坛 欢迎大家捧场
www.bbs.cxrs.net

#5


處理時間的復雜程度

#6


关于时间复杂度,看严蔚敏的那本数据结构,第一章的最后就讲了的,很明白,在这也不好说。
0层循环复杂度是O(1) 
一层循环复杂度是O(n) 
二层循环复杂度是O(n^2) //这个是n的平方
。。。。。。
以此类推就对了。

#7


建议看算法导论.

求出下界/上界/平均/期望的时间&空间复杂度对分析程序效率都是有很大帮助的.

求平均时间复杂度应该很好理解吧.

比如冒泡排序是O(N^2). 其本质是对N对数排序一共要比较N*(N-1)/2次,从渐进意义上考虑就是N^2.

类似. 二分法是O(logN) 快排是O(NlogN) 图论中以E与V区分. 比如SPFA的期望是O(E)

#8


数据结构导论

#9


0层循环复杂度是O(1) 
一层循环复杂度是O(n) 
二层循环复杂度是O(n^2) 

=====================

..... 不能这样讲吧.... 复杂度不是几层循环来描述的嘛.
如果都是关于n的循以上成立, 但是一般来说都不是那么理想的情况的.

#10


就是程序执行时间的长短。为了判断程序优劣程度而引入的一个量化的概念,请查看《算法导论》第三章