酷知吧

位置:首頁 > 生活 > 

桶排序時間複雜度是什麼

生活6.93K

桶排序時間複雜度:O(N+C),其中C=N*(logN-logM)。桶排序是一個排序算法,工作的原理是將數組分到有限數量的桶子裏,每個桶子再使用別的排序算法或以遞歸方式繼續使用桶排序進行排序。

桶排序時間複雜度  桶排序時間複雜度是什麼

桶排序的平均時間複雜度為線性的O(N+C),其中C=N*(logN-logM)。如果相對於同樣的N,桶數量M越大,其效率越高,最好的時間複雜度達到O(N)。當然桶排序的空間複雜度為O(N+M),如果輸入數據非常龐大,而桶的數量也非常多,則空間代價無疑是昂貴的。此外,桶排序是穩定的。

桶排序時間複雜度  桶排序時間複雜度是什麼 第2張

桶排序的方法

桶排序算法要求,數據的長度必須完全一樣,程序過程要產生長度相同的數據,其方法為:Data=rand()/10000+10000。

每次進行下一次的掃描順序是按照上次掃描的結果來的,所以設計上提供相同的兩個桶數據結構。前一個保存每一次掃描的結果供下次調用,另外一個臨時拷貝前一次掃描的結果提供給前一個調用。

在桶排序算法的代碼中,假設輸入是含n個元素的數組A,且每個元素滿足0≤ A[i]<1。另外還需要一個輔助數組B[O..n-1]來存放鏈表實現的桶,並假設可以用某種機制來維護這些表。

標籤:時間 複雜度