算法运行时间计算的一般法则
2011-10-07 17:50
633 查看
本文参考节选自 《数据结构与算法分析 Java语言描述》
法则1—— for循环
一个for循环的运行时间至多是该for循环内部的那些语句(包括测试)的运行时间乘以迭代器的次数。
法则2——嵌套的for循环
从里向外分析这些for循环。在一组嵌套循环内部的语句总的运行时间为该语句的运行时间乘以该组的所有的for循环的大小的乘积。
例如, 下列的程序段为O(N^2)
法则3——顺序语句
将各个语句的运行时间求和即可(这意味着,其中最大值就是所得的运行时间)
例如,下面的程序段先是花费O(N),接着是O(N^2),因此总量也是O(N^2);
法则4——if/else语句
对于程序片段
一个if/else运行时间从不超过判断的运行时间再加上S1 和S2 之间运行时间的长者的总的运行时间:T(总)<=T(if)+T(S1)orT(S2)。
法则1—— for循环
一个for循环的运行时间至多是该for循环内部的那些语句(包括测试)的运行时间乘以迭代器的次数。
法则2——嵌套的for循环
从里向外分析这些for循环。在一组嵌套循环内部的语句总的运行时间为该语句的运行时间乘以该组的所有的for循环的大小的乘积。
例如, 下列的程序段为O(N^2)
for(i = 0;i<n;i++) //外循环的次数为:初始化1单位+比较次数N单元+自增N单元,共2N+1 for(j = 0;j<n;j++) //内循环的次数为:初始化1单位+比较测试N单元+自增N单元,共2N+1 k++; //所以整个嵌套循环的运行时间为(2N+1)*(2N+1),最高次为N^2
法则3——顺序语句
将各个语句的运行时间求和即可(这意味着,其中最大值就是所得的运行时间)
例如,下面的程序段先是花费O(N),接着是O(N^2),因此总量也是O(N^2);
for(i = 0;i<n;i++) a[i] = 0; for(i = 0;i<n;i++) for(j = 0;j<n;j++) a[i]+=a[j]+i+j;
法则4——if/else语句
对于程序片段
if(condition) //此句话拥有判断的运行时间 T(if) S1 //T(S1) else S2 //T(S2)
一个if/else运行时间从不超过判断的运行时间再加上S1 和S2 之间运行时间的长者的总的运行时间:T(总)<=T(if)+T(S1)orT(S2)。
相关文章推荐
- 算法分析_运行时间计算的一般法则----C 语言复习
- C/C++中算法运行时间的三种计算方式(By 虚怀若谷)
- 一个c++中计算算法运行时间的程序
- VC计算算法的CPU运行时间
- 【转】C/C++中 算法运行时间的三种计算方式
- C/C++中算法运行时间的三种计算方式
- 如何精确计算出一个算法的CPU运行时间
- C/C++中算法运行时间的三种计算方式
- MATLAB中计算算法的运行时间方法
- C/C++中算法运行时间的三种计算方式(By 虚怀若谷)
- 如何精确计算出一个算法的CPU运行时间?
- 如何精确计算出一个算法的CPU运行时间
- C语言如何计算算法运行时间
- 11如何精确计算出一个算法的CPU运行时间?
- C#精确计算算法运行时间
- C/C++中算法运行时间的三种计算方式
- C/C++中算法运行时间的三种计算方式
- 【算法与数据结构】关于代码运行时间复杂度的计算方法
- <编程>比较两种素数表生成算法+计算程序运行时间+通过CMD重定向测试程序
- 简单理解计算-算法时间复杂度