这个运行时多项式是输入大小吗?

时间:2012-10-23 15:33:13

标签: algorithm time-complexity

某算法的输入大小为n ^ 2 + n * m。它的运行时间是O(m * n ^ 3)。可以将运行时间视为输入大小的多项式吗?

2 个答案:

答案 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))因此运行时间受输入大小的多项式限制。