黑马程序员学习笔记——关于时间复杂度计算1
2014-04-28 14:54
253 查看
---------------------- 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
----------------------
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
相关文章推荐
- 分享给大家一篇励志大师的文章-->一个男人关心的东西,决定了他的层次!
- 5种类型的程序员
- 从一道面试题彻底搞懂hashCode与equals的作用与区别及应当注意的细节
- 黑马程序员_java基础_函数&数组
- 黑马程序员--java 基础之内部类-----02
- 微软面试100题总结
- 来自一个程序猿前辈的经验总结 拿来分享给大家
- 代码面试最常用的10大算法
- 向马士兵老师学习如何干好程序员
- 黑马程序员 字节流和字符流缓冲区的对比
- 程序员身体健康也很重要
- 程序员的五种人
- [HR面试] 65个最常见的面试问题
- 腾讯面试题(统计数字出现的次数问题)
- 程序员如何快速准备面试中的算法
- PHP面试笔试细节
- abap猜想面试题
- 黑马程序员----7k月薪面试题破解(交通灯管理系统)
- 进程与线程的总结和区别
- 代码面试最常用的10大算法(经典)