桶排序時(shí)間復(fù)雜度 桶排序時(shí)間復(fù)雜度是什么
2020-07-29 天奇生活 【 字體:大 中 小 】
桶排序時(shí)間復(fù)雜度:O(N+C),其中C=N*(logN-logM)。桶排序是一個(gè)排序算法,工作的原理是將數(shù)組分到有限數(shù)量的桶子里,每個(gè)桶子再使用別的排序算法或以遞歸方式繼續(xù)使用桶排序進(jìn)行排序。
桶排序的平均時(shí)間復(fù)雜度為線性的O(N+C),其中C=N*(logN-logM)。如果相對(duì)于同樣的N,桶數(shù)量M越大,其效率越高,最好的時(shí)間復(fù)雜度達(dá)到O(N)。當(dāng)然桶排序的空間復(fù)雜度為O(N+M),如果輸入數(shù)據(jù)非常龐大,而桶的數(shù)量也非常多,則空間代價(jià)無(wú)疑是昂貴的。此外,桶排序是穩(wěn)定的。
桶排序的方法
桶排序算法要求,數(shù)據(jù)的長(zhǎng)度必須完全一樣,程序過(guò)程要產(chǎn)生長(zhǎng)度相同的數(shù)據(jù),其方法為:Data=rand()/10000+10000。
每次進(jìn)行下一次的掃描順序是按照上次掃描的結(jié)果來(lái)的,所以設(shè)計(jì)上提供相同的兩個(gè)桶數(shù)據(jù)結(jié)構(gòu)。前一個(gè)保存每一次掃描的結(jié)果供下次調(diào)用,另外一個(gè)臨時(shí)拷貝前一次掃描的結(jié)果提供給前一個(gè)調(diào)用。
在桶排序算法的代碼中,假設(shè)輸入是含n個(gè)元素的數(shù)組A,且每個(gè)元素滿足0≤ A[i]<1。另外還需要一個(gè)輔助數(shù)組B[O..n-1]來(lái)存放鏈表實(shí)現(xiàn)的桶,并假設(shè)可以用某種機(jī)制來(lái)維護(hù)這些表。
猜你喜歡
沒(méi)有卸甲水怎么卸指甲油
青城山為什么稱為鬼山
1立方天然氣燒幾個(gè)小時(shí)
戴勝為什么叫棺材鳥
竹筍焯水多長(zhǎng)時(shí)間
小米粥煮多久能熟
莜面蒸多長(zhǎng)時(shí)間能熟
用蒸籠怎樣隔水蒸米飯
綠茶可以做奶茶嗎
蒸土豆需要多長(zhǎng)時(shí)間
桶排序時(shí)間復(fù)雜度 桶排序時(shí)間復(fù)雜度是什么
美股開盤時(shí)間 美股什么時(shí)候開盤
錢塘江大潮的時(shí)間 錢塘江大潮時(shí)間是什么時(shí)候
泉城廣場(chǎng)噴泉時(shí)間 濟(jì)南泉城廣場(chǎng)噴泉簡(jiǎn)介
高鐵檢票時(shí)間 高鐵多久開始檢票
五四運(yùn)動(dòng)時(shí)間 五四運(yùn)動(dòng)的起因