📜  伪多项式算法

📅  最后修改于: 2021-05-08 17:44:20             🧑  作者: Mango

什么是伪多项式?
最坏情况下时间复杂度取决于输入数值(而不是输入数量)的算法称为伪多项式算法。
例如,考虑对正数数组中所有元素的频率进行计数的问题。为此,伪多项式时间解决方案是先找到最大值,然后从1迭代到最大值,然后为每个值在数组中找到其频率。该解决方案需要根据输入数组中最大值的时间,因此需要伪多项式。另一方面,将时间复杂度仅基于数组中元素的数量(而不是值)的算法视为多项式时间算法。

伪多项式和NP完备性
某些NP完全问题具有伪多项式时间解。例如,0-1背包,子集和和分区问题的动态规划解决方案是伪多项式。可以使用伪多项式时间算法解决的NP完全问题称为弱NP完全。

参考:
https://zh.wikipedia.org/wiki/伪多项式时间