计算时间复杂度与空间复杂度
2019-02-23 12:26
120 查看
如何衡量一个算法的好坏? 复杂度:空间复杂度 + 时间复杂度
事后统计法:就是在算法的程序运行结束后,根据实际运行结果衡量算法好坏
事前估计法:就是在程序运行之前,先按照程序代码,来预估算法的好坏
时间复杂度:用基本指令的运行次数而不是运行时间代表时间复杂度,同一个程序在不同配置的机器下的运行时间不一定相同
时间复杂度:基本语句的执行次数 ,一个关于问题规模N的数学表达式 并不一定要计算精确的执行次数,而是使用 O的渐进表示法,会忽略掉较小的执行次数,表示出一个大概的执行次数
-
用常数1表示所有的加法常数 O(1)
-
只保留最高阶项,
-
如果最高阶项存在且不为1,则去除他的系数,即是大O结果。
-
如O(F(N))=O(3N^2+2N+10) --> 3N^2+2N --> 3N^2 --> O(N^2)
-
主要看最差情况:(底线)任意输入规模最大运行次数
数据结构中如果没有明确说明, Lg N指的是log2 ^N 而不是log10^N
空间复杂度:临时占用空间的大小,要看在空间中定义的变量的多少 看有没有开辟辅助空间
-
辅助空间使用的越多,说明空间复杂度越高
递归:时间复杂度:递归深度 空间复杂度:递归深度*每次递归创调用的变量数
[code]//以斐波那契数列数列为例 long long Fib(int first,int second,int N) { return (N<3)?1:Fib(N-1)+Fib(N-1); } 降低时间复杂度的方法 //伪递归 long long Fib(int first,int second,int N) { if(N<3) return 1; if(N==3) return first+second; return Fib(second,first+second,N-1) }
相关文章推荐
- 计算时间复杂度&空间复杂度
- 计算时间复杂度和空间复杂度
- 计算算法的时间复杂度和空间复杂度
- 计算算法的时间和空间复杂度
- 时间复杂度与空间复杂度计算
- 计算时间和空间复杂度
- 数据结构2:算法时间复杂度和空间复杂度的计算
- 算法的复杂度包括时间复杂度和空间复杂度分别如何计算?
- 0-时间复杂度&空间复杂度的计算
- 计算时间和空间复杂度
- 算法的时间复杂度和空间复杂度计算
- 关于计算时间复杂度和空间复杂度
- 关于时间复杂度和空间复杂度的计算
- 计算算法的时间和空间复杂度
- 【C/C++】空间复杂度和时间复杂度的计算
- 视频序列的空间复杂度和时间复杂度的不用模型计算
- 如何计算一个算法的时间复杂度和空间复杂度
- Topic Model 的复杂度计算(时间和空间)
- 常用排序算法的时间和空间复杂度及算法时间复杂度的简单计算
- 浅谈时间复杂度及空间复杂度的计算。