伪多项式时间 Pseudo-polynomial time
生活随笔
收集整理的這篇文章主要介紹了
伪多项式时间 Pseudo-polynomial time
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
2018-03-15 14:20:08
偽多項(xiàng)式時(shí)間:如果一個(gè)算法的傳統(tǒng)時(shí)間復(fù)雜度是多項(xiàng)式時(shí)間的,而標(biāo)準(zhǔn)時(shí)間復(fù)雜度不是多項(xiàng)式時(shí)間的,則我們稱這個(gè)算法是偽多項(xiàng)式時(shí)間的。
想要理解“偽多項(xiàng)式時(shí)間”,我們需要先給出“多項(xiàng)式時(shí)間”的一個(gè)清楚的定義。
對于“多項(xiàng)式時(shí)間”,我們的直觀概念是時(shí)間復(fù)雜度,其中是一常數(shù)。比如,選擇排序的時(shí)間復(fù)雜度是,是多項(xiàng)式時(shí)間;暴力解決TSP問題的時(shí)間復(fù)雜度是,不是多項(xiàng)式時(shí)間。我們稱這種時(shí)間復(fù)雜度為“傳統(tǒng)時(shí)間復(fù)雜度”。
我們通常認(rèn)為傳統(tǒng)時(shí)間復(fù)雜度中的變量表示數(shù)據(jù)的輸入規(guī)模。比如,選擇排序中,指待排序數(shù)組中元素的個(gè)數(shù);TSP問題中表示圖中節(jié)點(diǎn)的數(shù)量。但是,這些所謂的輸入規(guī)模,僅僅是直觀的定義,并不足夠嚴(yán)謹(jǐn)。為了標(biāo)準(zhǔn)化這些,在計(jì)算標(biāo)準(zhǔn)時(shí)間復(fù)雜度時(shí),我們給出了輸入規(guī)模的標(biāo)準(zhǔn)定義: 一個(gè)問題的輸入規(guī)模是保存輸入數(shù)據(jù)所需要的bit位數(shù)。 了解了輸入規(guī)模的定義,我們來看“多項(xiàng)式時(shí)間”的標(biāo)準(zhǔn)定義: 對于一個(gè)問題,在輸入規(guī)模為x的情況下,如果一個(gè)算法能夠在O()時(shí)間內(nèi)解決此問題,則我們稱此算法是多項(xiàng)式時(shí)間的,其中為一常數(shù)。 排序問題:用選擇排序?qū)υ貍€(gè)數(shù)為的數(shù)組進(jìn)行排序時(shí),傳統(tǒng)時(shí)間復(fù)雜度為。輸入規(guī)模,因此,得到的標(biāo)準(zhǔn)時(shí)間復(fù)雜度是,仍然是多項(xiàng)式時(shí)間。因?yàn)檫@的n是只輸入數(shù)據(jù)的數(shù)目。 素?cái)?shù)測試:給定數(shù)字 n,通過從 2 到根號 n 的整數(shù)遍歷,判斷 n 是否為素?cái)?shù)。看似時(shí)間復(fù)雜度是O(n),但是這里的n是輸入數(shù)字的大小,真實(shí)的輸入規(guī)模為 x = logn,因此實(shí)際的時(shí)間復(fù)雜度是O(x ^ 2),是指數(shù)級的時(shí)間復(fù)雜度。這就是個(gè)偽多項(xiàng)式時(shí)間復(fù)雜度。轉(zhuǎn)載于:https://www.cnblogs.com/hyserendipity/p/8573472.html
總結(jié)
以上是生活随笔為你收集整理的伪多项式时间 Pseudo-polynomial time的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络维护精华之1
- 下一篇: NOD32内网病毒服务器的架设