天天看點

java實作桶排序

桶排序是指:将待排序數組中的元素劃分為多個桶(範圍段),對每個桶分别進行排序,将多個桶組合即為排序結果。

桶排序的時間複雜度為O(n + c),  其中n為待排序資料量,c = n * (logn - logm), m為桶的個數。極端情況下,當桶的個數與資料量相等時,桶排序時間複雜度為O(n)。

看一些部落格裡寫道桶排序是穩定排序,另一些部落格則說是非穩定排序。實際上,桶排序的穩定性取決于桶内排序所使用的算法,若使用插入排序,則是穩定排序,若使用快排,則是非穩定排序。