给定以下矩阵乘法算法,它们都是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)?
答案 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)) 谢谢,丹尼尔