伪多项式时间算法Pseudo-polynomial Algorithms-----geeksforGeek 翻译

原创翻译加学习笔记,方便国人学习算法知识!算法

原文连接http://www.geeksforgeeks.org/pseudo-polynomial-in-algorithms/数组

 

什么是伪多项式?学习

当一个算法的最坏时间复杂度是依据输入的数量级的时候,咱们就称算法的时间复杂偶是伪多项式时间(给一个wiki上的解释可能更好理解 若一个数值算法的时间复杂度能够表示为输入数值规模N的多项式,但其运行时间与输入数值规模N的二进制位数呈指数增加关系,则称其时间复杂度为伪多项式时间。这是因为,N的值是N的位数的幂,故该算法的时间复杂度实际上应视为输入数值N的位数的幂from wiki )spa

例如:统计一个数组中全部正数的出现频率。算法是先找到最大的数max,而后从1到max遍历没一个数,找到这个数在数组中的出现频率。这个算法须要的时间是取决于这个数组中最大的数的大小,因此说这个算法是伪多项式时间。换句话说,一个算法的时间复杂度只是根据输入元素的多少的话,咱们认为这个算法是多项式时间算法。翻译

 

伪多项式和NP彻底问题it

有一些NP问题是有伪多项式时间的解法的,例如:0-1背包问题的动态规划解法,子集和的问题(找出数组里子集的和等于某个值的问题), 切分问题。这都是伪多项式时间。若是一个NP彻底问题有伪多项式时间的解法,那么咱们称这种问题叫弱NP彻底问题。遍历

相关文章
相关标签/搜索