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)