for(int i = 1; i < str1.length(); i++)
{
for(int j = 1; j < str2.length(); j++)
{
if(str1[i] == str2[j]) c[i][j] = c[i-1][j-1] + 1;
else c[i][j] = max(c[i-1][j], c[i][j-1]);
}
}
这是算法,我需要找到这个算法的时间复杂度。让我们假设:
m = str1.length()
n = str2.length()
因此它显然是 O(m*n)。
但我有几个问题:
考虑到比较和作业的时间复杂度为 1,这是真的吗:
O( 3*m*n*(3+1+2+2) ) 时间复杂度?
如果必须完全分配数组,是否可以在这里计算最坏情况、最佳情况或平均情况的复杂性?