842数据结构复习之算法分析

算法分析

  • 复杂性上界和平均复杂度的渐近分析;
  • 最佳、最差和平均情况下的复杂度差异;
  • 大O、Ω和 θ 符号

1 时间复杂度

1.1 步骤

1)分析某个语句的执行次数(频度) 2)分析某个程序段执行的时间复杂度(用大O表示,要求写出推导过程)

1.2 例子

  • 例1
for (int i = 1; i <= n;  i++)
    for (int j = 1; j<=n; j++)
         {   c[i][j] = 0.0;
               for ( int k = 1; k <= n; k++)
                    c[i][j] = c[i][j]+a[i][k]*b[k][j];
         }
次数为n*n*n
  • 例2
x = 0; y = 0;
      for (int i = 1; i <= n; i++)
             for (int j = 1; j <= i; j++)
                    for (int k = 1; k <= j; k++)
                            x = x+y;
次数为n*(n+1)*(n+2)/6                             
  • 例3
 int x = 91;  int y = 100;
         while(y>0)
        {   if(x>100) { x -= 10;  y--; }
             else x++;
        }
次数为 1100

2 空间负杂度

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦