1,时间复杂度:T(n)=O(f(n)).它表示随问题规模n的增大,算法的执行时间的增长率和f(n)的增长率相同。在计算时间复杂度时,有两条规则:只保留高阶项;舍弃系数。下面举例说明具体该如何计算。
(1) 简单赋值语句:
{++x;s=0;}
{
temp=i;
i=j;
j=temp;
}
上面这两个简单的语句,时间复杂度为:T(n)=O(1) 。即就是,如果算法的执行时间是一个与问题规模n 无关的常数,则算法的时间复杂度为常数阶,记为T(n)=O(1).
(2) 简单循环语句:
for(int i=1;i<=n;++i;)
for(int j=1;j<=n;++j;)
{c[i][j]=0;}
第一句执行次数:1+n+n
第二句执行次数:n*(1+n+n)
第三句执行次数:n*n
则f(n)=3*n^2+3*n+1,保留高阶项,舍弃系数之后为f(n)=n