2.7 算法 --12 桶排序

2020-03-06  本文已影响0人  寒暄_HX

算法子目录:https://www.jianshu.com/p/02492be3c5f5

思路

首先将元素分在不同的桶中,然后对每个桶中的元素进行排序。

我们有个列表:[29,5,10,68,40,90,75]
我们大概得出数据分布在0-100之间,那么我们可以建立五个桶,每个桶表示0-100之间五分之一的范围。
t1=[5,10] (0~20)
t2=[29,40] (21~40)
t3=[] (41~60)
t4=[68,75] (61~80)
t5=[90] (81~100)
同时他们整体还是一个列表 li=[t1,t2,t3,t4,t5]。
我们可以分桶后,对每个桶进行排序,然后汇总各个桶即可。

总结

桶排序的表现取决于数据分布,也就是对不同的数据分桶时采取不同的分桶策略。
平均时间复杂度:O(n+k)
最坏时间复杂度:O(n2k)
空间复杂度:O(nk)

上一篇 下一篇

猜你喜欢

热点阅读