算法:时间复杂度从新认识
参考:http://c.chinaitlab.com/200909/793032.html
定义:
1.时间频度:
一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。
一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。
例如:
追问没看懂举得例子。第一个例子不应该是O(10000)吗?第二个例子不应该是O(n*n/2)吗括号里面的数是怎么得来的啊?回答O(10000)和O(1)都是常数阶,所以O(10000)可以近似看成O(1)。O(n*n/2)和O(n^2)都是平方阶,所以O(n*n/2)可以近似看成O(n^2)。一个算法在计算机上的执行效率,主要看这个算法的时间复杂度是属于哪一阶的,常数的影响并不大。当n非常大时,O(10000)的算法和O(1)的算法执行的时间差不多,O(n*n/2)的算法和O(n^2)的算法执行的时间差不多,但是O(n*n/2)的算法会比O(10000)的算法慢很多。