2018-03-15 14:20:08

伪多项式时间:如果一个算法的传统时间复杂度是多项式时间的,而标准时间复杂度不是多项式时间的,则我们称这个算法是伪多项式时间的。

想要理解“伪多项式时间”,我们需要先给出“多项式时间”的一个清楚的定义。

“传统时间复杂度”

我们通常认为传统时间复杂度中的变量伪多项式时间 Pseudo-polynomial time表示数据的输入规模。比如,选择排序中,伪多项式时间 Pseudo-polynomial time指待排序数组中元素的个数;TSP问题中伪多项式时间 Pseudo-polynomial time表示图中节点的数量。但是,这些所谓的输入规模,仅仅是直观的定义,并不足够严谨。为了标准化这些伪多项式时间 Pseudo-polynomial time,在计算标准时间复杂度时,我们给出了输入规模的标准定义:
一个问题的输入规模是保存输入数据所需要的bit位数。
了解了输入规模的定义,我们来看“多项式时间”的标准定义:
为一常数。
,仍然是多项式时间。因为这的n是只输入数据的数目。
给定数字 n,通过从 2 到根号 n 的整数遍历,判断 n 是否为素数。看似时间复杂度是O(n),但是这里的n是输入数字的大小,真实的输入规模为 x = logn,因此实际的时间复杂度是O(x ^ 2),是指数级的时间复杂度。这就是个伪多项式时间复杂度。
 
 
 
 
 
 
 

相关文章:

  • 2021-06-16
  • 2022-03-04
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-16
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-30
  • 2022-01-07
  • 2022-03-07
  • 2022-12-23
  • 2021-12-03
  • 2021-09-19
  • 2021-09-16
相关资源
相似解决方案