算法的时间性能分析
通常有两种衡量算法时间性能的方法
算法时间分析复杂度
- 计算算法的频度 T(n)
求出算法所有原操作
的执行次数。
- T(n)用O表示
不同的时间复杂度存在以下关系:
O(1)<O(log2n)<O(n)<O(nlog2n)<O(n2)<O(2n)<O(n!)
- 简化的算法时间复杂度分析
找出最深的语句分析频度
T(n)=n2=O(n2)
- 时间复杂度的求和、求积定理
为了计算算法的时间复杂度,有以下两个定理。
求和定理
:假设 T1(n)和T2(n)是程序段P1、P2的执行时间,并且T1(n)=O(f(n)),T2(n)=O(g(n)),那么先执行P1,再执行P2的总执行时间T1(n)+T2(n)=O(MAX(f(n),g(n)))。
求积定理
:假设 T1(n)和T2(n)是程序段P1、P2的执行时间,并且T1(n)=O(f(n)),T2(n)=O(g(n)),那么T1(n)×T2(n)=O(f(n)×g(n)。
算法空间性能分析
算法空间复杂度是对一个算法在运行过程中占用的存储空间大小的量度。只需考虑临时空间,不必考虑形参空间,形参空间会在调用该算法的算法中考虑。一般也作为问题的规模n的函数,以数量级形式给出,记作:
S(n)=O(g(n))
最后更新时间:本文遵循CCBY-NC-SA4.0许可协议,本文链接:
http://blog.wkaanig.cn/post/d68e5e2f.html