数据结构_0: 复杂度分析
2015-12-23 00:26
375 查看
时间复杂度原则
加法原则T(n)=T1(n)+T2(n)=O(f(x))+O(g(n))=O(max(f(n),g(n)))T(n)=T_1(n)+T_2(n)=O(f(x))+O(g(n))=O(max(f(n),g(n)))
乘法原则
T(n)=T1(n)∗T2(n)=O(f(n)∗g(n))=O(f(n)∗g(n))T(n)=T_1(n)*T_2(n)=O(f(n)*g(n))=O(f(n)*g(n))
渐进时间复杂度
O(1)<O(lg2n)<O(n)<O(nlgn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)O(1)
复杂度计算
常数阶
线性阶
//O(n) int i; for(i=0;i<n;i++) { }
对数阶
//O(lg2n) int cnt=1; while(cnt<=n) { cnt=cnt*2; }
2x=n=>x=log2n2^x=n=>x=log_2n
平方阶
int i,j; for(i=0;i<n;i++) for(j=0;j<n;j++) {...}
O(n2)O(n^2)
int i,j; for(i=0;i<m;i++) for(j=0;j<n;j++) {...}
O(m∗n)O(m*n)
int i,j; for(i=0;i<n;i++) for(j=i;j<n;j++) {...}
n+(n−1)+...+1=n(n+1)2n+(n-1)+...+1=\frac {n(n+1)}{2}
1+2+3+...+n=n∗n−121+2+3+...+n=n*\frac{n-1}{2}
12+22+...+n2=n(n+1)(2n+1)61^2+2^2+...+n^2=\frac{n(n+1)(2n+1)}{6}
13+23+...+n3=(n(n+1)2)21^3+2^3+...+n^3=(\frac{n(n+1)}{2})^2
典型算法分析
相关文章推荐
- 数据结构 JAVA描述(二) 栈
- 数据结构与算法 LeetCode编程练习--Contains Duplicate II
- 实验1 线性表的顺序实现
- 算法设计题1.20-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题1.19-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题1.17-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题1.16-绪论-第1章-《数据结构习题集》-严蔚敏吴伟民版
- 数据结构实验之排序七:选课名单
- 数据结构 JAVA描述(一) 线性表
- php实现的基本数据结构
- php数据结构算法示例
- 数据结构 线性表JAVA实现
- 绪论-第1章-《数据结构习题集》答案解析-严蔚敏吴伟民版
- 数据结构实验之查找二:平衡二叉树
- 数据结构基础(C语言版)(朱仲涛翻译)代码学习 第一章002
- 【ShancoLove】带你看数据结构——第十五课:哈夫曼树
- 【ShancoLove】带你看数据结构——第十四课:通讯录
- JVM启动过程的重要数据结构
- poj 1308 Is It A Tree? 数据结构 并查集
- 1-1-绪论-第1章-《数据结构》课本源码-严蔚敏吴伟民版