算法时间复杂度的简单推导
2011-06-09 16:25
155 查看
for(i=1;i<n;i++)
①
{
y=y+1; ②
for(j=0;j<=2n;j++) ③
x++; ④
}
① n-1+1=n from 1 to n+1,共n个数字 1是下界,n是上界。n虽不进入循环体,但是在这里却需要计算。从下界到上界共计算了n-1+1次
② (n-1)-1+1=n-1 from 1 to n-1,共n-1个数字 循环从1到n-1,计算了n-1-1+1=n-1次。
③ (n-1)(2n+1-0+1)=2(n-1)(n+1) from 0 to 2n+1,共2n+1-0+1=2(n+1)个数字,然后再乘以外侧循环(n-1)
④ (n-1)(2n-0+1)=(n+1)(2n+1) from 0 to 2n,共2n-0+1=2n+1 个数字, 然后再乘以外侧循环(n-1)
So, f(n)=n+(n-1)+2(n-1)(n+1)+(n+1)(2n+1)
=4n^2+n-4
程序的时间复杂度是 T(n)=O(n^2)
============================================
a=0;
b=1; ①
for(i=1;i<=n;i++) ②
{
s=a+b; ③
b=a; ④
a=s; ⑤
}
① 2
② (n+1)-1+1=n+1 from 1 to n+1,共n+1-1+1=n+1个数字 循环的下界是1,上界是n+1,同样不进入循环体,却需要计算。从下界到上界共计算了n+1次。
③ n-1+1=n from 1 to n,共n-1+1=n个数字。 循环从1到n,计算了n次
④ n-1+1=n from 1 to n,共n-1+1=n个数字。 循环从1到n,计算了n次
⑤n-1+1=n from 1 to n,共n-1+1=n个数字。 循环从1到n,计算了n次
So,f(n)=2+(n+1)+3n
=4n+3
程序的时间复杂度是 T(n)=O(n)
相关文章推荐
- 关于罗德里格斯公式的简单推导
- GDOI2012 数字统计(digit) 简单的公式推导(高精度模板题)
- BP神经网络:误差反向传播公式的简单推导
- 斯特林公式的推导(简单法则)
- Android -- 贝塞尔曲线公式的推导和简单使用
- NOIP 2001-2——最大公约数和最小公倍数问题(简单推导/分解质因数)
- 运放虚短虚断的简单推导
- Android -- 贝塞尔曲线公式的推导和简单使用
- 由简单推导复杂
- POJ 2231 Moo Volume , 简单公式推导
- 简单线性回归-最小二乘法公式推导
- 算法时间复杂度-推导大O阶
- Logistic Regression 的简单推导
- 主成分分析(PCA)算法的简单推导和实例
- POJ 2231 Moo Volume(排序+简单公式推导)
- kuangbin带你飞,矩阵(简单数学推导题)
- RNN上的BPTT的简单推导
- RNN的简单的推导演算公式(BPTT)
- BP神经网络原理简单介绍以及公式推导(矩阵形式和分量形式)
- 二项分布均值和方差的简单推导