某算法的输入大小为n ^ 2 + n * m。它的运行时间是O(m * n ^ 3)。可以将运行时间视为输入大小的多项式吗?
答案 0 :(得分:4)
是的。它以O(max{n,m}^4)
运行,这是输入的多项式时间,小于O(max{n^2,n*m}^2)
,这是输入大小的二次方。
注意:这假设输入为SIZE n^2+n*m
,而不是此“大小”的数字 - 因为数字可以表示为log(n^2+n*m)
位,只会给你一个pseudo-polynomial解决方案。
答案 1 :(得分:1)
运行时间T(n,m)被认为是输入大小S(n,m)= n ^ 2 + n * m的多项式,如果S中的多项式是T(n的上界) ,M)。
考虑多项式S ^ 2(n,m)=(n ^ 2 + n * m)^ 2 = n ^ 4 + 2(n ^ 2)n * m +(n ^ 2)(m ^ 2 )。由于n ^ 4和(n ^ 2)(m ^ 2)是正整数的正方形,因此它们是正的,因此S ^ 2(n,m)> 2(n ^ 2)n * m> n ^ 3 * m。
因为T(n,m)是O(n ^ 3 * m)并且S ^ 2(n,m)> n ^ 3 * m我们有T(n,m)是O(S ^ 2(n,m))因此运行时间受输入大小的多项式限制。