原創翻譯加學習筆記,方便國人學習算法知識!算法
原文連接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徹底問題。遍歷