黑马程序员学习笔记——关于时间复杂度计算1

来源:互联网 发布:mac协议是物理层 编辑:程序博客网 时间:2024/06/14 10:03

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

1.T(n)=T(n-1)+O(n) 时间复杂度为什么是O(n^2)???

解法1:

往下面继续展开:T(n-1) = T(n-2) + O(n-1)....一起合并代入得到:

T(n) = O(n) + O(n-1) + O(n-2) + ....+ O(1) + T(0)

这个T(0)一般为某个常数,前面的加起来不就是O(n(n+1)/2),也就是O(n^2)了

解法2:

T(1) = T(0) + O(1);

T(2) = T(1) + O(2);

T(3) = T(2) + O(3);

......

T(n) = T(n-1)+O(n);

两边相加,就可以得到T(n)了,然后同解法1


2.在时间复杂度中,log(2,n)(以2为底)与lg(n)(以10为底)是等价的,因为对数换底公式:
log(a,b)=log(c,b)/log(c,a)
所以,log(2,n)=lg(n)/lg(2), 忽略掉系lg2,二者当然是等价的。


3.




---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net

0 0