2

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

4

2 回答 2

4

是的。它运行在O(max{n,m}^4),这是输入的多项式时间,小于O(max{n^2,n*m}^2),这是输入大小的二次方。

注意:这假设输入是 SIZE n^2+n*m,而不是这个“大小”的数字- 因为数字可以表示为log(n^2+n*m)位,这只会得到一个伪多项式解决方案。

于 2012-10-23T15:36:11.513 回答
1

如果 S 中有一个多项式是 T(n,m) 的上界,则运行时间 T(n,m) 被称为输入大小 S(n,m) = n^2+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) ) 因此运行时间受输入大小的多项式限制。

于 2012-10-23T16:36:55.560 回答