在刚才提到的时间频度中,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)
。。。
还有指数,对数一类的的。。
我也感觉书上写的太复杂了,,看不明白,不是成纯数学了吗。。
不多见的多了,慢慢就明白了
一层循环复杂度是O(n)
二层循环复杂度是O(n^2)
。。。
还有指数,对数一类的的。。
我也感觉书上写的太复杂了,,看不明白,不是成纯数学了吗。。
不多见的多了,慢慢就明白了
#2
看看算法导论
#3
就是说从运行时间这个角度来考核,你的算法有多复杂。
#4
1楼上的不错 呵呵
本人开了个关于编程学习的论坛 欢迎大家捧场
www.bbs.cxrs.net
本人开了个关于编程学习的论坛 欢迎大家捧场
www.bbs.cxrs.net
#5
處理時間的復雜程度
#6
关于时间复杂度,看严蔚敏的那本数据结构,第一章的最后就讲了的,很明白,在这也不好说。
0层循环复杂度是O(1)
一层循环复杂度是O(n)
二层循环复杂度是O(n^2) //这个是n的平方
。。。。。。
以此类推就对了。
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)
求出下界/上界/平均/期望的时间&空间复杂度对分析程序效率都是有很大帮助的.
求平均时间复杂度应该很好理解吧.
比如冒泡排序是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的循以上成立, 但是一般来说都不是那么理想的情况的.
一层循环复杂度是O(n)
二层循环复杂度是O(n^2)
=====================
..... 不能这样讲吧.... 复杂度不是几层循环来描述的嘛.
如果都是关于n的循以上成立, 但是一般来说都不是那么理想的情况的.
#10
就是程序执行时间的长短。为了判断程序优劣程度而引入的一个量化的概念,请查看《算法导论》第三章
#1
0层循环复杂度是O(1)
一层循环复杂度是O(n)
二层循环复杂度是O(n^2)
。。。
还有指数,对数一类的的。。
我也感觉书上写的太复杂了,,看不明白,不是成纯数学了吗。。
不多见的多了,慢慢就明白了
一层循环复杂度是O(n)
二层循环复杂度是O(n^2)
。。。
还有指数,对数一类的的。。
我也感觉书上写的太复杂了,,看不明白,不是成纯数学了吗。。
不多见的多了,慢慢就明白了
#2
看看算法导论
#3
就是说从运行时间这个角度来考核,你的算法有多复杂。
#4
1楼上的不错 呵呵
本人开了个关于编程学习的论坛 欢迎大家捧场
www.bbs.cxrs.net
本人开了个关于编程学习的论坛 欢迎大家捧场
www.bbs.cxrs.net
#5
處理時間的復雜程度
#6
关于时间复杂度,看严蔚敏的那本数据结构,第一章的最后就讲了的,很明白,在这也不好说。
0层循环复杂度是O(1)
一层循环复杂度是O(n)
二层循环复杂度是O(n^2) //这个是n的平方
。。。。。。
以此类推就对了。
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)
求出下界/上界/平均/期望的时间&空间复杂度对分析程序效率都是有很大帮助的.
求平均时间复杂度应该很好理解吧.
比如冒泡排序是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的循以上成立, 但是一般来说都不是那么理想的情况的.
一层循环复杂度是O(n)
二层循环复杂度是O(n^2)
=====================
..... 不能这样讲吧.... 复杂度不是几层循环来描述的嘛.
如果都是关于n的循以上成立, 但是一般来说都不是那么理想的情况的.
#10
就是程序执行时间的长短。为了判断程序优劣程度而引入的一个量化的概念,请查看《算法导论》第三章