算法的渐近运行时间

时间:2017-04-02 21:00:22

标签: java algorithm asymptotic-complexity

给定以下矩阵乘法算法,它们都是n x n

for(int i=1;i<=n;i++){
    for(int j=1;j<=n;j++){
       s=0;       
       for(int k=1;k<=n;k++){
          s+=A[i][k]*B[k][j];
          C[i][j]=s;
       }
    }
}
return s;

渐近运行时间是Theta(n ^ 3),但这是什么意思:

  

如果我们将运行时间视为输入长度的函数,则订单增长为Theta(m ^(3/2))其中m是输入的长度,即m是数字元素的顺序矩阵和m = Theta(n ^ 2)

为什么输入的增长是Theta(m ^(3/2))并且是整个渐近运行时间Theta(n ^ 2)?

1 个答案:

答案 0 :(得分:0)

如果我们有渐近时间T是: T = Theta(n ^ 3) 这意味着,我们的时间与此t成比例: t = k *(n ^ 3) 我们还有m是元素数量级的顺序: m = Theta(n ^ 2)。 这意味着,m&#39; ,具体数量的元素是这样的: 米&#39; = g *(n ^ 2) (g和k是常数) 如果我们把n放在m&#39; : n =(m&#39; / g)^(1/2) 我们用这个代替: t = k *(n ^ 3)= k *(m&#39; / g)^(3/2)///// t =(k /(g ^(3/2))*(m&#39; ^(3/2)) 左边的部分是不变的 所以 T = Theta(m ^(3/2)) 谢谢,丹尼尔