桶排序時(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ěn)定的。
桶排序的方法
桶排序算法要求,數(shù)據(jù)的長(zhǎng)度必須完全一樣,程序過程要產(chǎn)生長(zhǎng)度相同的數(shù)據(jù),其方法為:Data=rand()/10000+10000。
每次進(jìn)行下一次的掃描順序是按照上次掃描的結(jié)果來的,所以設(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]來存放鏈表實(shí)現(xiàn)的桶,并假設(shè)可以用某種機(jī)制來維護(hù)這些表。
猜你喜歡
花甲又加三七歲月是多少歲 年齡的表述方法有哪些
珠峰為什么不能過夜 攀登珠峰需要具備哪些條件
青芒切開太生了怎么辦 青芒食用注意事項(xiàng)
炒豆角需要焯水幾分鐘 炒豆角不焯水有什么影響
安全頭枕保護(hù)哪個(gè)部位 安全頭枕使用注意事項(xiàng)
生羊肚煮多長(zhǎng)時(shí)間能熟 吃羊肚注意事項(xiàng)
皮蛋制作方法及配方 皮蛋制作注意事項(xiàng)
為什么黃瓜是綠色的 黃瓜功效與作用
溫泉不能泡太久的原因 哪些人不適合泡溫泉
泡溫泉一般泡多長(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)的起因